01_basic_12_break_and_continue

第十二章 break语句和continue语句

在执行循环的过程中,可能有时需要提前结束循环,不能等到再次计算Condition时。那么,在这种情况下,可以使用break语句或者continue语句。

1 break语句(break statement)

break语句可用于switch语句for语句while语句do-while语句中。当执行break语句时,程序会跳出当前语句,并将程序移到下一条语句继续执行。

例如,当我们需要计算1-10的和时,我们还可以使用无限for循环、无限while循环或者无限do-while循环,累计当前变量i的值。但是在每次循环开始时,先判断i的值是否大于10。如果大于10,则跳出循环,继续执行下一条指令。

int sum = 0;
for (int i = 1; ; i++) {
    if (i > 10)
        break;
    sum += i;
}
System.out.println("The sum of 1 to 10 is " + sum);

sum = 0;
int i = 1;
while (true) {
    if (i > 10)
        break;
    sum += i;
    i++;
}
System.out.println("The sum of 1 to 10 is " + sum);

sum = 0;
i = 1;
do {
    if (i > 10)
        break;
    sum += i;
    i++;
} while (true);
System.out.println("The sum of 1 to 10 is " + sum);

break语句还支持另一种形式,即结束某一条语句的运行。在这种情况下,break语句中会指定一个标签标识符。当break语句运行时,程序会立即停止执行目标标签所对应的语句。break语句不必运行在循环语句中。这种break语句主要用于跳出嵌套循环或者语句块。

int count = 2;
label: if (true) {
    ...
    if (count == 2) 
        break label; // 停止执行label对应的if语句
    ...
}

2 continue语句(continue statement)

与break语句相似的是,continue语句也可以打断当前的循环。然而,continue语句并不跳出循环,而是直接再次执行Condition表达式,并判断是否需要进入下一次循环。continue语句可以用于for语句while语句do-while语句

例如,我们可以使用如下的代码计算1-10范围内的所有偶数的和。

int sum = 0;
for (int i = 0; i <= 10; i++) {
    if (i%2 == 0) {
        sum += i;
    } else {
        continue;
    }
}
System.out.println("The sum of even numbers from 1 to 10 is " + sum);

3 小结

break语句和continue语句可以用于打断或者退出循环的执行。break语句直接退出循环语句;而continue语句则提前中止当前的循环执行,直接进入下一次循环判断或者下一次循环的执行。为了能够直接中止嵌套循环的执行,Java语言还支持带标签的break语句。当运行该break语句时,程序会直接中止该标签对应的语句。如果该标签对应的语句是嵌套循环的话,那么,该break语句能够直接中止多重循环的执行。

上一章
下一章

注册用户登陆后可留言

Copyright  2019 Little Waterdrop, LLC. All Rights Reserved.