您的位置:首页 > 其它

关于for循环中,不同时机return 时,for循环的执行情况

2016-10-15 09:10 417 查看
在做一个项目时,总结一下不同情况下return,会产生不同的结果。从而实现你的业务逻辑。

先上测试代码:

情况一:

public static void main(String args[]) {
int b = 0;
for (int i = 0; i < 3; i++) {
for (int j = 0; j < 3; j++) {
if (i == 2) {
return;
}
b++;
System.out.println("ForTest.main b= " + b);
}
System.out.println("ForTest.main for i");

}
System.out.println("ForTest.main");
}


打印日志信息:

ForTest.main b= 1
ForTest.main b= 2
ForTest.main b= 3
ForTest.main for i
ForTest.main b= 4
ForTest.main b= 5
ForTest.main b= 6
ForTest.main for i


总结:当外侧层for循环执行到i=2时,if语句执行 return后,该for循环不在继续遍历,而且该方法或者该程序也不再继续往下执行,但是内侧for循环能完成全部遍历。

情况二:

在情况一的基础上,如果把return语句注释

for (int i = 0; i < 3; i++) {
for (int j = 0; j < 3; j++) {
if (i == 2) {
// return;  //把return语句注释
}
b++;
System.out.println("ForTest.main b= " + b);
}
System.out.println("ForTest.main for i");

}
System.out.println("ForTest.main");


打印日志信息:

ForTest.main b= 1
ForTest.main b= 2
ForTest.main b= 3
ForTest.main for i
ForTest.main b= 4
ForTest.main b= 5
ForTest.main b= 6
ForTest.main for i
ForTest.main b= 7
ForTest.main b= 8
ForTest.main b= 9
ForTest.main for i
ForTest.main


总结:这种情况,就是两个for循环,都正常遍历,都遍历完,并且继续执行以下的语句。

情况三:

还是在情况一的基础上,如果把 i 换成 j ;

for (int i = 0; i < 3; i++) {
for (int j = 0; j < 3; j++) {
if (j == 2) {//把 i 换成 j
return;
}
b++;
System.out.println("ForTest.main b= " + b);
}
System.out.println("ForTest.main for i");

}
System.out.println("ForTest.main");


打印日志信息:

ForTest.main b= 1
ForTest.main b= 2


总结:当内层for循环执行到 j=2时,if语句执行 return后,该for循环不在继续遍历,而且外侧for循环也不再继续遍历,而且该方法或者该程序也不再继续往下执行。

感觉不错的话,给点个赞吧,谢谢!
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: