break语句出现在嵌套循环中的内层循环时,只能跳出内层循环,若使break语句跳出外层循环,则需要对外层循环进行标记。
//标记只能用于循环上,给循环命名的一种方式;
w:for(int x=0;x<3;x++){
q:for(int y=0;y<5;y++){
System.out.println("x="+x);
break w;
运行结果:x=0;
continue:
for(int i=0;i<9;i++){
if(i%2==1)
continue;
System.out.println("i="+i);
}
运行结果:
i=0
i=2
i=4
i=6
i=8
对外循环标记的continue语句:
w:for(int i=0;i<3;i++){
for(int j=0;j<6;j++){
System.out.println("i="+i);
continue w;
}
运行结果:
(可以通过逐步调试,观察程序执行过程以及i的变化)
小结:continue在内层循环中不起作用,对外层循环添加标记,会跳出内循环
直接在类中写break;(即没有作用范围),运行出现"在switch或loop外部中断"
直接在类中写continue;(即没有作用范围),运行出现"在loop(循环)外部中断"
(1)只能在循环体内和switch语句体内使用break。
(2)不管是哪种循环,一旦在循环体中遇到break,系统将完全结束循环,开始执行循环之后的代码。
(3)当break出现在循环体中的switch语句体内时,起作用只是跳出该switch语句体,并不能终止循环体的执行。若想强行终止循环体的执行,可以在循环体中,但并不在switch语句中设置break语句,满足某种条件则
在switch语句或者任何循环中使用break语句,是程序跳到switch或循环后面的语句处执行。
continue语句用于循环中,让程序跳过循环体余下的代码,并开始新一轮循环。
3、break与continue的区别:
break:结束所有循环,本次循环体不再执行,跨出循环体以内的内容。
continue:结束本轮循环,开启下一轮循环,本轮循环剩下的内容不在执行。
下图注意箭头方向
1、break语句可以结束当前循环的执行
2、执行完break语句后,循环体中位于break语句后面的语句就不会被执行
3、在多重循环中,break语句只向外跳一层
举例说明上面的定理:
package com.jinglan.loop;
import java.util.Scanner;
public class BreakDemo {
public static void main(String[] args) {
// 演示定理1:break语句
break语句与continue语句都有结束循环的意思,但是他们还有很多的不同点。
在循环语句(for、while、do…while)中
1、break语句:终止、永久跳出循环(循环体中break后面的代码不执行)
2、continue语句:结束本次的循环(本次循环中continue后面的代码不执行),进入下一次的循环
在嵌套循环(多层循环)中,break语句只向外跳一层