outer: for(;;){}用法详解

outer:
            for (ConfigPrintMode configPrintMode : configPrintModeList) {
                Long tempOrgId = orgId;
                for (; ; ) {
                    if (configPrintMode.getOrgId().equals(tempOrgId)) {
                        data.put("orderPrintMode", configPrintMode.getOrderPrintMode());
                        data.put("pastePrintMode", configPrintMode.getPastePrintMode());
                        break outer;
                    }
                    if (tempOrgId.equals(0L)) {
                        break;
                    }
                    if (CollectionUtils.isNotEmpty(organizationList)) {
                        for (Organization organization : organizationList) {
                            if (organization.getId().equals(tempOrgId)) {
                                tempOrgId = organization.getPId();
                                break;
                            }
                        }
                    }
                }
            }

关键字break和continue都是结束循环的作用,但是它只能结束它外面的第一层循环,如果代码里面是一层一层又一层的循环,你想直接结束最外层循环又该怎么做呢?
此时,就需要outer了

如果只用break,那么只跳出了里面的for循环,外层还没结束。
用break;则输出:0000000000
用break outer;则输出:0
outer:就相当于表示它现在代表的某个循环。
如果想跳出它所代表的循环,那么就break outer;
如果想结束它所代表的此次循环,那么就continue outer;

for(初始化; 判断条件; 执行语句)

for语句的语法规定,括号里面一定要有两个分号,分开三个句子。
第一个句子是初始化用的,如果没有初始化的必要,就视为空语句,加上分号;

第二个句子作为判断条件,如果没有判断条件,也视为空语句,后加一个分号。这种情况,会无限循环,相当于while(1)。如果for的执行部分,就是{}之间有break语句,可以退出;

第三个句子是执行部分执行完毕再执行的语句;无则视为空语句;此时不用再加分号。

如果三者都为空,那么表示没有初始化,没有判断条件,不执行语句。由没有判断条件,故为死循环,相当于while(true)

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值