If-Else 太多,如何优化!!!
完全不必要的 Else 块
public void consumer(int product) { if (product > 1) { // do something } else { // do something elsea } }
只需删除 else` 块即可简化此过程
public void consumer(int product) { if (product > 1) { // do something return; } // do something elsea }
价值分配
public String gender(int input) { String gender = null; if (0 == input) { // do something gender = "man"; } else if (1 == input) { gender = "woman"; } else { gender = "unkonwn"; } // do something else return gender; }
尽管很简单,但它却很糟糕。首先,If-Else 很容易在这里被开关取代。但是,我们可以通过完全删除 else 来进一步简化此代码。
public String gender(int input) { if (0 == input) { return "man"; } if (1 == input) { return "woman"; } return "unkonwn"; }
前提条件检查
public String gender(int input) { if (0 > input) { throw new IllegalArgumentException(); } if (1 < input) { throw new IllegalArgumentException(); } return input == 0 ? "man" : "woman"; }
将 If-Else 转换为字典,完全避免 If-Else
public static String gender(Integer input) { Map<Integer, Function<Integer, String>> map = new HashMap<>(); map.put(0, (integer) -> { return "man"; }); map.put(1, (integer) -> { return "woman"; }); return map.get(input).apply(input); }