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

来源:互联网 发布:javaweb和java的区别 编辑:程序博客网 时间:2024/04/30 01:03

在做一个项目时,总结一下不同情况下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= 1ForTest.main b= 2ForTest.main b= 3ForTest.main for iForTest.main b= 4ForTest.main b= 5ForTest.main b= 6ForTest.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= 1ForTest.main b= 2ForTest.main b= 3ForTest.main for iForTest.main b= 4ForTest.main b= 5ForTest.main b= 6ForTest.main for iForTest.main b= 7ForTest.main b= 8ForTest.main b= 9ForTest.main for iForTest.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= 1ForTest.main b= 2

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

感觉不错的话,给点个赞吧,谢谢!

1 0
原创粉丝点击