break、continue以及return的区别

break、continue以及return的区别以下:微信

一、breakspa

break用于彻底结束一个循环,跳出循环体,再也不执行下面的代码。对于多层循环嵌套,若是break语句出如今嵌套循环中的内循环时,它仅仅只是终止了内循环的执行,对外循环不影响其执行。例如以下程序:code

public class BreakTest {

    public static void main(String[] args) {
        for (int i = 0; i < 5; i++) {
            if (i == 1) {
                // 执行该语句时将结束循环
                break;
            }
        }
    }
}

运行上面程序能够看到,当i等于1时,循环体遇到break语句,程序跳出该循环。blog

break语句不只能够结束其所在的循环,还能够结束外层循环,只须要在外层循环定义一个紧跟英文冒号(:)的标识,而后在循环体里使用带有标识的break语句,这样能够跳出多层循环。示例以下:class

public class BreakTest {

    public static void main(String[] args) {
        // outer做为外层循环的标识
        outer: for (int i = 0; i < 8; i++) {
            // 内层循环
            for (int j = 0; j < 5; j++) {
                if (j == 3) {
                    // 跳出outer标签所标识的循环
                    break outer;
                }
            }
        }
    }
}

一般紧跟break以后的标识,必须在break所在的循环的外层循环以前定义才有意义,由于break默认就是结束当前其所在的循环。循环

2. continue二维码

continue的做用和break有点相似,区别是continue不会终止循环,只是忽略本次循环剩下的语句,接着开始下一次循环;而break则是彻底终止循环。下面程序示范了continue的用法:程序

public class ContinueTest {

    public static void main(String[] args) {

        for (int i = 0; i < 5; i++) {
            System.out.println("i=" + i);
            if (i == 2) {
                // 忽略本次循环剩下的语句
                continue;
            }
            System.out.println("continue后的输出语句");
        }
    }
}

打印结果为:方法

i=0
continue后的输出语句
i=1
continue后的输出语句
i=2
i=3
continue后的输出语句
i=4
continue后的输出语句im

从打印结果能够看出,当i等于2时,"continue后的输出语句"没有打印出来,由于continue把此行代码忽略了,继续执行下一次循环。

与break相似的是,continue后也能够紧跟一个标识,用于直接跳过标识所在循环的当次循环的剩下语句,从新开始下一次循环。例以下面的代码示例:

public class ContinueTest {

    public static void main(String[] args) {
        // 外层循环
        outer: for (int i = 0; i < 4; i++) {
            for (int j = 0; j < 3; j++) {
                System.out.println("i=" + i + ";j=" + j);
                if (j == 1) {
                    // 忽略outer所在循环中本次循环剩下的语句
                    continue outer;
                }
            }
        }
    }
}

打印结果为:

i=0;j=0
i=0;j=1
i=1;j=0
i=1;j=1
i=2;j=0
i=2;j=1
i=3;j=0
i=3;j=1

从运行结果中能够看出,当j等于1时,因为执行了continue outer语句,结束了外循环的当次循环,j的值没法超过1。

3. return

return关键字不是用来结束循环的,而是用于结束方法的。当一个方法执行到return语句时,该方法将被结束。若是在一个方法的循环体内执行return语句,这个方法就会结束,固然循环天然也就随之结束。例以下面程序:

public class ReturnTest {

    public static void main(String[] args) {
        for (int i = 0; i < 3; i++) {
            System.out.println("i=" + i);
            if (i == 1) {
                return;
            }
            System.out.println("return后的输出语句");
        }
    }
}

打印结果为:

i=0
return后的输出语句
i=1

从打印结果能够看出,当i等于1时,因为执行了return语句,因此这个方法及方法里的循环都结束了。值得注意的是:return结束的是整个方法,而无论这个return处于多少层循环以内。

引伸的问题:Java语言中是否存在goto关键字?

goto关键字是Java的保留字,目前尚未在Java中使用。虽然不能像C/C++那样可使用goto跳出多重循环,但在Java语言中可使用break和continue来达到一样的效果。

 

欢迎关注微信公众号【Java典籍】,收看更多Java技术干货!

  ▼微信扫一扫下图↓↓↓二维码关注

 

相关文章
相关标签/搜索