首先看下break和continue的使用方法。
break語句在循環和switch語句中使用,用於終止最近的封閉代碼塊,如果在嵌套循環中,則只終止最近的循環。
continue語句在循環中使用,不能單獨在switch中使用,可以在循環內的switch中使用,用於跳過當次循環,直接進入下一次循環。
再看下兩者在循環內的switch中使用的區別。
1、看一個循環內的switch中使用break的例子:
1 public static void testBreakAndContinue() { 2 List<String> fruit = new ArrayList<>(Arrays.asList("apple", "banana", "orange", "pear")); 3 for (int i = 0; i < fruit.size(); i++) { 4 switch (fruit.get(i)) { 5 case "orange": 6 // continue; 7 break; 8 } 9 System.out.println("we have " + fruit.get(i)); 10 } 11 }
輸出結果為:
可以看出,這里break只終止了最近的switch,並沒有終止for循環。
2、再看一個循環內的switch中使用continue的例子:
1 public static void testBreakAndContinue() { 2 List<String> fruit = new ArrayList<>(Arrays.asList("apple", "banana", "orange", "pear")); 3 for (int i = 0; i < fruit.size(); i++) { 4 switch (fruit.get(i)) { 5 case "orange": 6 continue; 7 // break; 8 } 9 System.out.println("we have " + fruit.get(i)); 10 } 11 }
輸出結果為:
可以看出,continue不止跳出了switch,還跳過了orange的這一次for循環,沒有輸出。