if else 是我们写代码时,使用频率最高的关键词之一,然而有时过多的 if else 会让我们感到脑壳疼,例如下面这个伪代码:
是不是很奔溃?虽然他是伪代码,并且看起来也很夸张,但在现实中,当我们无数次 review 别人代码时,都会发现类似的场景,那么我们本文就来详细聊聊,有没有什么方法可以让我们避免来写这么多的 if else 呢?
我们本文提供了 9 种方法来解决掉那些“烦人”的 if else,一起来看吧。
1.使用 return
我们使用 return
去掉多余的 else,实现代码如下。
优化前代码:
if (str.equals("java")) { // 业务代码 ! true; } else { return ; }
优化后代码:
if (str.equals("java")) { return ; } return false;
这样看起来就会舒服很多,虽然相差只有一行代码,但真正的高手和普通人之间的差距就是从这一行行代码中体现出来的。
「勿以善小而不为,勿以恶小而为之」「千里之堤,溃于蚁穴」,说的都是同样的道理。
2.使用 Map
使用 Map 数组,把相关的判断信息,定义为元素信息可以直接避免 if else 判断,实现代码如下。
优化前代码:
if (t == 1) { type = "name"; } else if (t == 2) { type = "id"; } else if (t == 3) { type = "mobile"; }
我们先定义一个 Map 数组,把相关判断信息存储起来:
Map<Integer, String> typeMap = new HashMap<>(); typeMap.put(1, "name"); typeMap.put(2, "id"); typeMap.put(3, "mobile");
之前的判断语句可以使用以下一行代码代替了:
type = typeMap.get(ty);
3.使用三元运算符
三元运算符也叫三元表达式或者三目运算符/表达式,不过代表的都是一个意思,优化代码如下。
优化前代码:
Integer score = 81; if (score > 80) { score = 100; } else { score = 60; }
优化后代码:
score = score > 80 ? 100 : 60;