關於流程控制的幾個細節

      流程控制是結構化程序設計的成果。最基本的流程控制結構有3種:順序結構、分支結構和循環結構。

一、switch語句

        1、default分支執行的條件:當default分支前面的所有分支都沒有執行時,default分支才獲得的執行的機會。
        2、每個case分支後的代碼塊都應該有break;要不然所有分支都會執行。運行javac  -Xlint:fallthrough  類名.java 可以檢查出是否缺少break。
        3、swith表達式可接收的數據類型有:byte,short,int ,char,enum。

二、循環體的花括號

1、在for、while和do...while循環中,重複執行語句只有一條,並且不是局部定義變量語句,纔可以省略花括號。
2、根據Java語言規範,for循環裏有且只能有2個分號作爲分隔符。第一個分號之前是初始化條件,兩個分號中間的部分是一個返回boolean的邏輯表達式,第二個分號是循環迭代部分,每次循環結束後會執行循環迭代部分。
        3、for循環中的初始化語句和循環迭代語句可以有多條語句,但是隻能用逗號作爲分隔符。
        4、儘量不要改變計數器的值,而且儘量不要使用浮點數做循環計數器,容易導致精度丟失。

三、foreach循環的循環計數器

從JDK5.0之後,增加了foreach循環用於遍歷數組和集合的每個元素。當使用foreach循環來迭代輸出數組或集合的元素時,系統將其副本傳給循環計數器,也就是說foreach循環中的循環計數器並不是數組或集合元素本身。循環計數器只是一箇中間變量,臨時保存了正在遍歷的元素。雖然循環計數器可以賦值,但是不要這樣做,沒意義,而且容易導致錯誤。
   
public static void main(String args []){

                List<String> books = new ArrayList<String>();
		books.add("Java編程思想");
		books.add("Effective Java");
		books.add("Java Puzzlers");
		for (String book : books) {
		book = "Core Java";
		System.out.println(book);
		}
		for (String book : books) {
			System.out.println(book);
	}

}

上面代碼第一次會打印三遍“Core Java”,第二次會依次打印集合裏面的值,說明book的確是一箇中間變量。
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章