一、作用和区别
break的作用是跳出当前循环块(for、while、do while)或程序块(switch)。在循环块中的作用是跳出当前正在循环的循环体。在程序块中的作用是中断和下一个case条件的比较。
continue用于结束循环体中其后语句的执行,并跳回循环程序块的开头执行下一次循环,而不是立刻循环体。
二、其他用途
break和continue可以配合语句标签使用。这个都很简单,下面给个综合实例,看看就明白 了:
/** * Created by IntelliJ IDEA. * User: leizhimin * Date: 2007-11-29 * Time: 15:47:20 */ public class Test { public static void main(String args[]) { Test test = new Test (); test.testBreak1(); test.testContinue1(); test.testBreak2(); test.testContinue2(); } /** * 测试continue * continue用来结束本次循环 */ public void testContinue1() { System.out.println("--------测试continue-------"); for (int i = 1; i <= 5; i++) { if (i == 3) continue; System.out.println("i=" + i); } } /** * break用来结束整个循环体 */ public void testBreak1() { System.out.println("--------测试break1-------"); for (int i = 1; i <= 5; i++) { if (i == 3) break; System.out.println("i=" + i); } } /** * 测试带标签的break语句 * 标签只能写在循环体之前,顺便学习一下java中语句标签的定义和使用 */ public void testBreak2() { System.out.println("--------测试break2-------"); int i = 1; int k = 4; lable1: for (; i <= 5; i++, k--) { if (k == 0) break lable1; System.out.println("i=" + i + " ; k=" + k); } } public void testContinue2() { System.out.println("--------测试continue2-------"); lable1: for (int i = 1; i < 10; i++) { lable2: System.out.println("i=" + i); for (int j = 0; j < 10; j++) { if (j == 9) continue lable1; } } } }
运行结果:
--------测试break1-------
i=1
i=2
--------测试continue-------
i=1
i=2
i=4
i=5
--------测试break2-------
i=1 ; k=4
i=2 ; k=3
i=3 ; k=2
i=4 ; k=1
--------测试continue2-------
i=1
i=2
i=3
i=4
i=5
i=6
i=7
i=8
i=9
Process finished with exit code 0
i=1
i=2
--------测试continue-------
i=1
i=2
i=4
i=5
--------测试break2-------
i=1 ; k=4
i=2 ; k=3
i=3 ; k=2
i=4 ; k=1
--------测试continue2-------
i=1
i=2
i=3
i=4
i=5
i=6
i=7
i=8
i=9
Process finished with exit code 0
下面是对这个用法的总结:
(1) 简单的一个continue会退回最内层循环的开头(顶部),并继续执行。
(2) 带有标签的continue会到达标签的位置,并重新进入紧接在那个标签后面的循环
(3) break会中断当前循环,并移离当前标签的末尾。
(4) 带标签的break会中断当前循环,并移离由那个标签指示的循环的末尾。
版权声明:本文为博主原创文章,未经博主允许不得转载。