break 只用于结束其所在当前循环语句块程序的运行,但不会影响其所在语句块外部代码的执行
例子:
for (int i=0;i<3;i++){
if(i==1){
break;}
System.out.println("in code");
}
System.out.println("out code");
输出结果 in code
out code
return 用于结束其所在方法的运行(一旦执行了return,后边的代码统统不再执行,)
例子:
for (int i=0;i<3;i++){
if(i==1){
return;
}
System.out.println("in code");
}
System.out.println("out code");
//执行结果 :in code
如上所说return 用于结束其所在方法的运行,即使return 执行后结束了其所在方法,会影响该方法被引用
例如:
static void loop(){
for(int i=0;i<3;i++){
if(i==1){
return;
}
System.out.println("in code");
}
}
public static void main(String[] args){
loop();
System.out.println("out code");
}
执行结果 :in code;
out code;
补充例子一:
int i=1;
switch(i){
case 1:
System.out.println("代码1");
break;
case 2:
System.out.println("代码2");
default:
return;
}
System.out.println("代码4");
分析 :此处i=1,满足switch中case 1的条件 执行case1 break结束了switch;跳出执行了最后一句代码 ,输出了代码4;
补充例子二:
int i=1;
switch(i){
case 1:
System.out.println("代码1");
case 2:
System.out.println("代码2");
default:
return;
}
System.out.println("代码4");
运行结果
提示无法访问的语句 因为此时的i=1;满足switch的case 1故而执行;but case 2和defualt一样可以执行,defualt 执行return结束了当前switch,故而其后的输出语句一定不会执行,故而无法通过javac编译;
return语句后边的命令 至少要保证有机会执行才不会提示“无法访问的语句(类似于死锁?)”
关于continue
用于结束当前循环,进入下次循环
例子
for (int i=0;i<3;i++){
if(i==1){
continue;
}
System.out.println("in code"+i);
}
System.out.println("out code");//i=1时循环跳出了故而结果如下
执行结果 in code0;
in code2;
out code;