当你的判断的,在多重循环中的时候,退出循环使用锚点

33333
需求:
一键创建一个报表, 报表包含多个数据库表的内容
就会使用到多个 for 循环的内容
所以, 就要在一些不符合条件的 for 循环上加上判断, 当不符合时 , 最外面的 for 循环也不在执行


List<DeptProject> deptProjects = deptProjectMapper.selectList(wrapper);
        if (null == deptProjects || deptProjects.isEmpty()) {
            for (Dept dept : deptList) {
                DeptProject deptProject = new DeptProject();
                // 设置判断这个部门是否有负责人的锚点
                boolean b = false;
                deptProject.setName(year.getCode() + "年度" + dept.getName() + "一页纸报表");
                deptProject.setDeptId(dept.getId());
                deptProject.setYearId(year.getId());
                Set<User> users = userRoleMapper.findUsersBydeptIdAndRoleId(dept.getId(), role.getId());
                if (null != users) {
                    for (User user : users) {
                        if (dept.getId().equals(user.getDeptId())){
                            deptProject.setDeptHeadId(user.getId());
                            b = true;
                        } else {
                            b = false;
                            continue;
                        }
                        //deptProject.setDeptHeadId(user.getId());
                    }
                }
                if (!b){
                    continue;
                }
                deptProject.setCreatedUserId(currentUser.getId());

当我的那个条件 b 使用的使用的时候 , 初始化为 false , 当从新开始一个循环的时候也是 false ,
在内层 for 循环的时候给定一个判断的条件 , 如果成功的时候就是使用为 true 就可以, 继续下面的循环结构的添加.
在内层循环的时候, 条件为 不成立 则 置为 false , 使用 continue 退出这次内层循环, 同样的将 锚点的状态置为 false , 那么在下面判断的时候, 就是通过的, 那么就会 退出这次的外层循环.

-----------------------------------------------------我是万恶的分割线-----------------------------------------------------

附加, continue; , break; , return;
三者的区别问题:

continue 是 跳过这个条件的循环, 进行下一个循环 (影响 小)

break 是 退出这次的 循环体 , 终止剩余的全部循环 (影响 中)

return 是 退出循环体, 返回这个方法的结果, 到类 (影响 大)

参考文档 = https://zhidao.baidu.com/question/175639895692192164.html

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值