JAVA基础-跳出循环的4种方式

摘要:介绍4种跳出循环的方式,尤其是其中的break 标签,有时候真的会成为工作中的秘密武器。

  在实际编程中,有时需要在条件语句匹配的时候跳出循环。在 Java 语言里,由关键词 break 和 continue 控制。Java跳出for或者while循环的四种方式:

  continue:跳出当前层循环的当前语句,执行当前层循环的下一条语句。

  break:跳出当前层循环。

  break+标签:多层循环时,跳到具体某层循环。

  return:结束所有循环,方法内直接返回。

  break和continue是老生常谈的东西,break是终止当前层循环,包括之后的本层循环,continue是终止本次循环的语句,继续之后的本层循环。

break 语句

  在存在内循环的情况下,Java break 语句用来结束内循环,即不再执行当前内循环后边的所有循环,但外循环仍然继续执行。

  【示例】打印当前循环坐标。

    private static void breakDemo() {
        for (int i = 1; i <= 3; i++) {
            for (int j = 1; j <= 3; j++) {
                if (i == 2 && j == 1) {
                    break;
                }
                System.out.println(i + ", " + j);
            }
        }
    }

  由输出结果可知没有打印i=2时的内循环数据:

1, 1
1, 2
1, 3
3, 1
3, 2
3, 3

  分析:循环中跳过了i=2时,对内循环的遍历。

continue 语句

  Java continue 语句用来终止当前操作,并继续内循环,即仅仅是这一次循环结束了,而非所有循环结束了,后边的循环依旧进行。

    private static void continueDemo() {
        for (int i = 1; i <= 3; i++) {
            for (int j = 1; j <= 3; j++) {
                if (i == 2 && j == 2) {
                    continue;
                }
                System.out.println(i + ", " + j);
            }
        }
    }

  在如下输出结果中,没有打印2, 2

1, 1
1, 2
1, 3
2, 1
2, 3
3, 1
3, 2
3, 3

带标签的break

  使用break语句只能跳出一层循环,但是在实际开发中,有时会碰到跳出到某层循环的情况,这时使用break语句就不能达到预期效果,需要搬出break 标签了。

  java的标签只能定义在语句块的上方,例如while和for循环,用于跳出多重嵌套的循环语句块,如下面loop的形式定义。可以直接在内层使用break lable跳出指定的代码块。

    private static void labelDemo() {
        for (int i = 1; i <= 3; i++) {
            loop:
            for (int j = 1; j <= 3; j++) {
                for (int k = 1; k <= 3; k++) {
                    if (j == 2) {
                        break loop;
                    }
                    System.out.println(i + ", " + j + ", " + k);
                }
            }
        }
    }

  分析:遇到j==2的时候,就跳出循环到loop:

1, 1, 1
1, 1, 2
1, 1, 3
2, 1, 1
2, 1, 2
2, 1, 3
3, 1, 1
3, 1, 2
3, 1, 3

  一言以蔽之,带标签的break的影响范围是指定标签后定义的循环语句块。

  return 结束所有循环,方法内直接返回。这个容易理解,就不介绍了。

结束语

  对于Wiener以上的话题,大家又有什么自己的独特见解呢?欢迎在下方评论区留言!

Reference

posted @ 2023-02-28 17:57  楼兰胡杨  阅读(12037)  评论(0编辑  收藏  举报