能否使用循环替代代码中重复编写的if/else条件判断语句
替换if/else的实现方案
当然可以,替换后代码冗余度会大幅降低,后续要调整随机数生成数量也不用逐个修改if/else分支,具体实现思路如下:
- 把离散声明的5个number变量替换为数组,通过循环批量生成随机数,避免重复编写相同的赋值逻辑
- 直接根据id1的取值累加数组对应项得到total,和原有业务逻辑完全一致
- 额外补充边界校验避免id1超出1~5的范围时出现数组越界异常
优化后的代码如下:
// 批量生成5个随机数存入数组 int[] numbers = new int[5]; for (int i = 0; i < numbers.Length; i++) { numbers[i] = random.Next(id2) + 1; } // 边界校验,可根据你的业务需求调整异常处理逻辑 if (id1 < 1 || id1 > 5) { // 这里可以返回自定义错误,或者做其他处理 return Json("invalid id1"); } // 累加前id1项得到total int total = 0; for (int i = 0; i < id1; i++) { total += numbers[i]; } string newmessage = "message"; return Json(newmessage);
注意:你原有代码中id1=5的分支里累加的是
numberOne + numberTwo + numberThree + numberFive,漏了numberFour,如果这不是特殊业务逻辑只是笔误,上面的代码可以直接使用;如果是刻意设计的特殊逻辑,只需在累加循环里针对id1=5的场景跳过数组索引为3的项(对应原numberFour)即可。
内容的提问来源于stack exchange,提问作者user13784532
相关产品推荐
相关产品推荐

