将一个条件从else语句中拆分出来导致的bug
将一个条件从else语句中拆分出来,拆成一个新的else if分支,不能忘记要把原来else中的代码逻辑复制一份过来。或者直接在原来的else中直接写条件判断,执行特定条件下的代码逻辑。
方法run2和run3是对run1方法里else中b==1条件进行拆分,进行其它操作。使用run2形式不能忘记将原来else中的代码逻辑复制一份过来,推荐使用run3方式。
1 package com.alphajuns.test; 2 3 import java.util.Random; 4 5 import org.junit.Test; 6 7 public class DemoTest { 8 9 @Test 10 public void run1() { 11 int a = 0; 12 Random r = new Random(); 13 int b = r.nextInt(4); 14 if (b == 0) { 15 a = 0; 16 } else { 17 a = 1; 18 } 19 System.out.println("a的值:" + a); 20 System.out.println("b的值:" + b); 21 } 22 23 @Test 24 public void run2() { 25 int a = 0; 26 Random r = new Random(); 27 int b = r.nextInt(4); 28 if (b == 0) { 29 a = 0; 30 } else if (b == 1) { 31 a = 1; // 将b==1条件从else中拆出来不能忘记原来else中对a赋值1的代码拿过来 32 System.out.println("b的值为1是要执行的操作"); 33 } else { 34 a = 1; 35 } 36 System.out.println("a的值:" + a); 37 System.out.println("b的值:" + b); 38 } 39 40 @Test 41 public void run3() { 42 int a = 0; 43 Random r = new Random(); 44 int b = r.nextInt(4); 45 if (b == 0) { 46 a = 0; 47 } else { 48 if (b == 1) { // 在else内部写b==1条件下的操作 49 System.out.println("b的值为1是要执行的操作"); 50 } 51 a = 1; 52 } 53 System.out.println("a的值:" + a); 54 System.out.println("b的值:" + b); 55 } 56 57 }
分类:
Debug&Summary
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· go语言实现终端里的倒计时
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· ollama系列01:轻松3步本地部署deepseek,普通电脑可用
· 25岁的心里话
· 按钮权限的设计及实现
2019-08-19 POI XSSF与HSSF区别
2019-08-19 Apache POI读取Excel