Java基础-break continue goto关键字

别来无恙 提交于 2020-02-01 20:03:19

break

break在任何循环的主体部分中均可控制循环的流程,break用于强制退出循环,在循环语句中,一旦执行到break,直接结束循环的执行。break也在switch中使用,用于跳出switch语句。

int i = 0;

while (i < 100) {
    i++;
    if (i == 10) {
        break;
    }
    System.out.println(i);
}

System.out.println("程序结束!");

上述代码就是在循环打印1~100中,打印到10的时候就中止整个循环语句,执行结果为:
在这里插入图片描述
我们发现,它仅仅循环到10时就结束了循环语句,但是循环体外部的代码继续正常执行。

我们对break的理解就可以是,结束当前循环结构体或者结束switch语句。

continue

continue语句用在循环语句中,用于中止某次循环过程,即跳过循环体中还未执行的语句,接着进行下一次是否执行循环的判定。

int i = 0;

while (i++ < 10) {
    if (i == 5) {
        continue;
    }
    System.out.println(i);
}

System.out.println("程序结束!");

上述代码是打印1~10,但是不打印5,执行结果为:
在这里插入图片描述
我们发现它只是没有打印5,说明循环遇到continue就结束了当前次循环,但是并未影响后续循环,这就是break与continue的区别。

我们对于continue的理解就是结束当前次循环,后续循环并无影响。

break与continue的区别

关键字 作用 使用范围
break 结束当前循环 循环语句和switch语句
continue 结束当前次循环 循环语句

goto

goto关键字很早就出现在程序设计语言中,但是goto关键字在Java中仍然还是一个保留字,并未得到正式使用;虽然Java中没有goto,我们在break和continue中能够看到一些goto的“影子”,就是带有标签的break和continue。

标签:就是指后面跟着一个:的标识符,例如:lable:

对于Java来说,唯一用到标签的地方是在循环语句之前,而在循环之前设置标签的唯一理由是:我们希望在其中嵌套循环,由于break和continue关键字通常只中断当前的循环,但若随标签同时使用,它就会中断到存在标签的地方。

//打印50~100之间的质数
outer: for (int i = 50; i <= 100; i++) {
            for (int j = 2; j <= i / 2; j++) {
                if (i % j == 0) {
                    continue outer;
                }
            }
            System.out.println(i);
        }

上述代码,我们对外层循环使用了标签,取名为outer,当内层循环执行到if语句内部时(代表当前数字不是质数),就直接跳到外层循环,再执行后续的循环。

这里的continue就类似于goto的跳转作用,但是在Java中的标签只能添加在循环语句前。

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!