将一个条件从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 }

 

posted @ 2021-08-19 22:52  AlphaJunS  阅读(74)  评论(0编辑  收藏  举报