break: 此語句導致程序終止包含它的循環,並進行程序的下一階段(整個循環后面的語句),即,不是跳到下一個循環周期而是退出循環。如果break語句包含在嵌套循環里,它只跳出最里面的循環。
如下代碼:
public class Test { public static void main(String[] args) { for(int i=0; i<10; i++){ if(i==5){ break; } System.out.print(i+" "); } } }
可以看到程序輸出了01234到5的時候跳出了循環
continue:循環語句里有此語句時,程序運行到此語句時,不在執行循環體里continue后面的語句而是跳到下一個循環入口處執行下一個循環。
把break改為continue
public class Test { public static void main(String[] args) { for(int i=0; i<10; i++){ if(i==5){ continue; } System.out.print(i+" "); } } }
可以看到只有5沒有輸出,也即當i=5時沒有執行打印操作,直接到下一次循環
而return是表示從被調函數返回到主調函數繼續執行,返回時可附帶一個返回值,由return后面的參數指定。return后函數就結束了,后面的語句不再執行
public class Test { public static void fun(){ for(int i=0; i<10; i++){ if(i==5){ return; } System.out.print(i+" "); } System.out.println("hello"); } public static void main(String[] args) { fun(); } }
可以看到后面的hello並沒有打印出來
總結:
break和continue都是中斷當前的循環(注意,循環是可以嵌套的,中斷的只是當前層的循環)
break語句中斷循環后跳轉到循環后的語句標簽執行(Before),
而continue則跳轉到循環入口語句標簽執行(After)
return 作用是,將函數調用棧彈棧,恢復現場。說的簡單點兒就是結束當前的函數(順便返回函數執行結果),回到本函數被調用處繼續執行