Java代码嵌套不超过几层_坑爹代码 | 循环+条件判断,你最多能嵌套几层?

for 循环和 if 条件判断语句,必不可少吧。但是你见过最多嵌套的循环和条件判断有几层呢?或者说,你最多能容忍多少层的嵌套呢?

1da30d4f0080e6e2ceda04c5035356a9.png

我们还是先来看看极端的坑爹代码吧:

// 这个无限循环嵌套,只是总循环的一部分。。。我已经绕晕在黄桷湾立交

if (recordList.size() > start) {

for (int i = start; i < end; i++) {

Map map = recordList.get(i);

Map field11 = (Map) map.get("field"); //name -> code

Map record11 = (Map) map.get("record"); // code -> value

String catagory1 = map.get("categoryId").toString();

// 查询第一种类型对应的其他类型

SalaryDataVo ss = JSON.parseObject(JSON.toJSONString(map), SalaryDataVo.class);

Page page3 = salaryManagerService.getAllRecordsByCondition(ss);

if (page3.getRecords().size() > 0) {

List> salaryDataVos = page3.getRecords();

salaryDataVos = this.reSetMap(salaryDataVos,null,null);

for (Map map2 : salaryDataVos) {

Map field2 = (Map) map2.get("field");

Map record2 = (Map) map2.get("record");

String catagory2 = map2.get("categoryId").toString();

List groupList2 = salaryGroupService.getSalaryGroupsItems(this.getUserCorpId(), catagory2);

for (SalaryGroupVO cc : groupList2) {

cc.setCode(cc.getParentId() + cc.getCode());

}

//计算

for (Map.Entry entity : field2.entrySet()) {

String keyName = entity.getKey();

for (SalaryGroupVO s2 : groupList2) {

if ("bigDecimal".equals(s2.getItemType()) && s2.getCode().equals(field2.get(keyName).toString()) && ("部门" != keyName) && ("姓名" != keyName) && StringUtils.isNotEmpty(s2.getItemType())) {

if (field11.containsKey(keyName)) {

if (field11.containsKey(keyName)) {

String code1 = field11.get(keyName).toString();

Double newValue = 0.0;

Double oldValue=0.0;

if (!record11.get(code1).toString().matches("^[0-9]*$")) {

oldValue = Double.parseDouble(record11.get(code1).toString());

if (record2.containsKey(entity.getValue().toString()) && (!record2.get(entity.getValue().toString()).toString().matches("^[0-9]*$"))) {

String value2 = record2.get(entity.getValue().toString()).toString();

newValue = Double.parseDouble(value2);

}

record11.remove(field11.get(keyName).toString());

}

我数了数,一共有 11 层的嵌套!!!

吐槽归吐槽,这样的代码逻辑有什么重构的好方法吗?

到下面链接发表评论,领取奖品:

码云 6 周年,我们正在征集各种坑爹代码,很多奖品等你来拿

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值