【java學習】控制執行流程
阿新 • • 發佈:2019-02-04
1,for迴圈
1.1 for執行順序
for(表示式1;表示式2;表示式3){
}
先執行表示式1–>然後執行表示式2,如果為false,結束迴圈,否則執行迴圈體–>執行表示式3
1.2 foreach迴圈
for(Object item : ObjectList){
}
1.3 迴圈效率比較
在 JDK1.5 之後,至少有三種遍歷的方式:ForEach、迭代器、for迴圈。
直接for迴圈效率最高,其次是迭代器和 ForEach操作。
對於集合,ArrayList手寫的迴圈比增強型for迴圈更快,其他的集合沒有這種情況。因此預設情況下使用增強型for迴圈,而遍歷ArrayList使用傳統的迴圈方式。
作為語法糖,其實 ForEach 編譯成 位元組碼之後,使用的是迭代器實現的,反編譯後,testForEach方法如下:
public static void testForEach(List list) { for (Iterator iterator = list.iterator(); iterator.hasNext();) { Object t = iterator.next(); Object obj = t; } } //可以看到,只比迭代器遍歷多了生成中間變數這一步,因為效能也略微下降了一些。
2,while迴圈
2.1 while執行順序
while(表示式1){
表示式2;
}
每次迴圈,先執行表示式1,再執行表示式2.
2.2 do-while執行順序
do{
表示式1;
}while(表示式2);
每次迴圈,先執行表示式1,再執行表示式2.
3,return,break,continue
只有一點需要注意,break和continue是對當前迴圈進行控制,多層迴圈也只能跳出當前迴圈。
4,switch
switch(m){
case 1:
case 2:
default:
}
4.1 break
只需要注意一點,沒有break,會依次執行後續的case和default。
4.2 支援型別
byte、short、char、int (Java 5以前);
enum列舉型別(Java5);
字串(String)(Java 7)。
長整型(long)在目前所有的版本中都是不可以的。