1.首先;無論是while
循環還是for
循環,有兩個特別的語句可以使用,就是break
語句和continue
語句。
break
在循環過程中,可以使用break
語句跳出當前循環。我們來看一個例子:
public class Main {
public static void main(String[] args) {
int sum = 0;
for (int i=1; ; i++) {
sum = sum + i;
if (i == 100) {
break;
}
}
System.out.println(sum);
}
}
輸出結果為:5050
使用for
循環計算從1到100時,我們並沒有在for()
中設置循環退出的檢測條件。但是,在循環內部,我們用if
判斷,如果i==100
,就通過break
退出循環。
因此,break
語句通常都是配合if
語句使用。要特別注意,break
語句總是跳出自己所在的那一層循環。例如:
public class Main {
public static void main(String[] args) {
for (int i=1; i<=10; i++) {
System.out.println("i = " + i);
for (int j=1; j<=10; j++) {
System.out.println("j = " + j);
if (j >= i) {
break;
}
}
// break跳到這里
System.out.println("breaked");
}
}
}
//輸出結果為:
上面的代碼是兩個for
循環嵌套。因為break
語句位於內層的for
循環,因此,它會跳出內層for
循環,但不會跳出外層for
循環。
continue
break
會跳出當前循環,也就是整個循環都不會執行了。而continue
則是提前結束本次循環,直接繼續執行下次循環。我們看一個例子:
public class Main {
public static void main(String[] args) {
int sum = 0;
for (int i=1; i<=10; i++) {
System.out.println("begin i = " + i);
if (i % 2 == 0) {
continue; // continue語句會結束本次循環
}
sum = sum + i;
System.out.println("end i = " + i);
}
System.out.println(sum); // 25
}
}
注意觀察continue
語句的效果。當i
為奇數時,完整地執行了整個循環,因此,會打印begin i=1
和end i=1
。在i為偶數時,continue
語句會提前結束本次循環,因此,會打印begin i=2
但不會打印end i = 2
。
在多層嵌套的循環中,continue
語句同樣是結束本次自己所在的循環。
小結:
break
語句可以跳出當前循環;
break
語句通常配合if
,在滿足條件時提前結束整個循環;
break
語句總是跳出最近的一層循環;
continue
語句可以提前結束本次循環;
continue
語句通常配合if
,在滿足條件時提前結束本次循環。