break、continue关键字
break作用范围:
- 在switch中是作为停止的关键字。
- 在循环中是结束当前循环的命令。(离break最近的外层循环)
public static void main(String[] args) {
for(int i=0;i<5;i++) {
if(i==3) {
System.out.println("i为3的时候停止程序");
break;
}
System.out.println("i为"+i);
}
}
结果:
i为0
i为1
i为2
i为3的时候停止程序
分析:本应该循环5次的!结果第四次的时候因为满足了if条件然后执行了break!结束!
栗子:
break在内层循环,请让它作用于外层循环。
public static void main(String[] args) {
outer:for (int j = 0; j < 2; j++) {
for (int i = 0; i < 5; i++) {
if(j==1) {
System.out.println("j="+j+" i="+i+"结束!");
break outer;
}
System.out.println("j="+j+" i="+i);
}
}
}
结果:
j=0 i=0
j=0 i=1
j=0 i=2
j=0 i=3
j=0 i=4
j=1 i=0结束!
分析:运用一个标记,来解决。标记的命名,符合标识符的命名规范。结束被标记的循环。
continue作用:
执行到continue关键字时,continue后就不执行了,立刻开始下一次循环。(结束本轮循环)
public static void main(String[] args) {
for(int i=0;i<5;i++) {
if(i==3) {
System.out.println("在这儿停顿_(:з」∠)_");
continue;
}
System.out.println("i为"+i);
}
}
结果:
i为0
i为1
i为2
在这儿停顿(:з」∠)
i为4
分析:没有打印 i为3 !因为提前结束了~
continue也可以使用标记!
public static void main(String[] args) {
outer:for (int j = 0; j < 3; j++) {
for (int i = 0; i < 3; i++) {
if(j==1) {
System.out.println("我决定不执行j=1的所有了!略略略");
continue outer;
}
System.out.println("j="+j+" i="+i);
}
}
}
结果:
j=0 i=0
j=0 i=1
j=0 i=2
我决定不执行j=1的所有了!略略略
j=2 i=0
j=2 i=1
j=2 i=2
不过标记这个东西老师说一般不要用= =,,知道一下就行了!