區別
break和continue都可在循環語句里面使用,也都可以控制外層的循環。但是continue只能在循環語句里面使用,break也可以使用在switch語句里面。
break具體作用在循環語句中的具體作用是,跳出當前循環,當然還可以跳出所有的循環。當前循環中break語句之后的語句都不會執行。
break跳出當前循環:
1 public class Test { 2 public static void main(String[] args) { 3 //循環打印1,2,3,4 4 for (int i = 0; i < 5; i ++) { 5 if (i == 1) {//當i等於1的時候 6 break;//跳出當前循環 7 } 8 System.out.println(i); 9 } 10 11 } 12 }
輸出結果:0
跳出所有循環:給外層循環起個別名,相當與goto
1 public class Test { 2 public static void main(String[] args) { 3 go : for (int j = 0; j < 5; j++) {//外層循環別名為go 4 //循環打印1,2,3,4 5 for (int i = 0; i < 5; i++) { 6 if (i == 1) {//當i等於1的時候 7 break go;//跳出外層循環 8 } 9 System.out.println(i); 10 } 11 } 12 } 13 }
輸出結果:0
continue執行順序
在for循環中先執行初始化語句-------->執行條件判斷語句-------->執行循環體中的內容-------->執行循環變量變化的語句-------->進行條件判斷-------->循環體,直到條件不滿足結束;如果在此過程中遇到continue,則返回執行循環變量變化的語句-------->執行條件判斷語句--------->執行循環體中的內容,如此循環執行,知道條件不滿足結束循環。
在while中由於循環變量一般在最后的語句中,所以遇到continue之后不會循環變量不會發生改變(循環變量變化的語句在continue之前除外)。
1 public class Test { 2 public static void main(String[] args) { 3 //循環打印1,2,3,4 4 for (int i = 0; i < 5; i++) { 5 if (i == 1) {//當i等於1的時候 6 continue;//繼續執行外層循環 7 } 8 System.out.print(i); 9 } 10 } 11 }
輸出結果:0234
當i等於1時跳過打印操作,直接執行i++語句,再進行條件判斷
==============================================
continue控制外層循環也是給外層循環起別名:
1 1 public class Test { 2 2 public static void main(String[] args) { 3 3 go : for (int j = 0; j <3; j++) {//外層循環別名為go 4 4 //循環打印1,2,3,4 5 5 for (int i = 0; i < 5; i++) { 6 6 if (i == 1) {//當i等於1的時候 7 7 continue go;//繼續執行外層循環 8 8 } 9 9 System.out.print(i); 10 10 } 11 11 System.out.println();//不會執行到 12 12 } 13 13 } 14 14 } 15 輸出結果:000