【java學習】控制執行流程

兔兔西發表於2018-09-29

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)在目前所有的版本中都是不可以的。

相關文章