Java从入门到放弃(十六):break和continue

在编程中,whilefor循环是常用的迭代结构,它们允许我们重复执行一段代码块,直到满足某个条件为止。在这些循环中,breakcontinue是两个非常有用的语句,它们可以改变循环的执行流程。

break

break语句用于立即退出当前的循环体。无论循环条件是否仍然为真,break都会停止循环的进一步执行。例如,在下面的代码中,使用for循环计算从1到100的和,但是我们没有在for循环的声明中设置结束条件。相反,我们在循环体内部使用了一个if语句来判断是否应该退出循环。当累加的值i等于100时,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);
    }
}

在嵌套循环中,break只会退出它所在的那一层循环。例如,下面的代码中有两个嵌套的for循环。当内层循环中的j值大于或等于外层循环的i值时,内层循环会通过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;
                }
            }
            System.out.println("breaked");
        }
    }
}

continue

break不同,continue语句用于跳过当前循环的剩余部分,并立即开始下一次迭代。这意味着,当continue执行时,循环体内的后续代码将不会执行,而是直接进入下一次循环的开始。例如,下面的代码中,我们使用for循环遍历1到10的整数。但是,当当前数字i为偶数时,continue语句会执行,导致循环体中计算sum的代码被跳过,因此只有奇数被加到sum中。

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同样只影响它所在的那一层循环。当满足continue条件时,它会结束当前迭代,并开始下一次迭代。

声明:本站所有文章,如无特殊说明或标注,均为本站原创发布。任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。
0 条回复 A文章作者 M管理员
    暂无讨论,说说你的看法吧
Slide
产品集

工坊

农业自动化

建站BOX

RNOS

小夕灯具

版权归属所有权©2024杭州软柠科技有限公司/主办上海枫汇网络科技有限公司。保留所有权利。

切换语言:/ EN

服务协议 | Cookie政策 | 服务条款 | 法律声明 | 浙ICP备2024117703号-2 | 浙公网安备33010802013612号 | 本站:沪ICP备2022008782号-7

你有新的私信

请务必要查看您的私信哟~~