场景1:web应用
return是可以跳出双重for循环
for(int i=0;i<10;i++){
for(int j=0;j<10;j++){
return "success";
}
}
这个语法是可以跳出for循环的,尽管是双重循环。
场景2:纯java,当内层循环终止时为外层循环增加判断标志位
/**
* 对于for循环而言
* break只能跳出本循环
* 如果有多个循环,可以增加标志位
*/
@Test
public void doubleFor(){
boolean k=false;//外层循环是否break标志位,默认为false
for(int i=0;i<10;i++){//外层循环
System.out.println("i="+i);//输出外围循环的循环次数
for(int j=0;i<10;j++){//内层循环
System.out.println("j="+j);
//如果 j==1,内层循环结束,并修改 标志变量k 的值为true
if(j==1){
k=true;
break;
}
}
if(k){//如果k为true,则终止外围循环
break;
}
}
}
场景3:纯java,为外层循环设置标签,名字是你自定义
/**
* 为你最外围的循环增加一个名字
* 自定义名字:for(XXX){
* for(XXX){
* ...无限嵌套for(XXX){if(true) break 自定义名字;}
* }
* }
* 可以直接跳出最外围的名字
*/
@Test
public void testForLabel(){
//writeName是你自定义的
writeName:for(int i=0;i<10;i++){
System.out.println("i="+i);
for(int j=0;j<10;j++){
System.out.println("j="+j);
for(int k=0;k<10;k++){
System.out.println("k="+k);
if(k==1){
break writeName;//跳出整个循环
}
}
}
//后面程序可以正常运行
System.out.println("111");
}
}
场景4 使用return
for 循环之后的逻辑不会运行
/**
* 纯java使用 return也可以跳出双重循环,方法未void
*/
@Test
public void testForReturn(){
for(int i=0;i<10;i++){//外层循环
System.out.println("i="+i);//输出外围循环的循环次数
for(int j=0;j<10;j++){//内层循环
System.out.println("j="+j);
if(j==2){
return;
}
}
}
// return 之后就不能再有其它逻辑了
}