天天看點

Java- if-else

if (condition) {
  // do something
} else if (otherCondition) {
  // do something else
} else {
  // Default
}      

通常If-Else邏輯如上所示,但實際卻是可以優化的。

1. Remove unnecessary else

public void test(int input) {
  if (input > 10) {
    // do something
  } else {
    // do something else
  }
}      

邏輯結構為if-else,通過return 即可實作優化。

public void test(int input) {
  if (input > 10) {
    // do something
    
    return ;
  }
  
  // do something else
}      

實際上根本不需要其他塊,在滿足特定條件的情況下執行某些操作并立即傳回。

2. 價值配置設定

public String test(int input) {
    String gender = "";

    if (input == 0) {
        gender = "male";
    } else if (input == 1) {
        gender = "female";
    } else {
        gender = "unknown";
    }

    return gender;
}      

如果已經找到正确的值,則繼續測試一個值就是毫無意義的。是以,代碼優化如下:

public String test(int input) {
    if (input == 0) return "male";
    if (input == 1) return "female";

    return "unknown";
}      

3. 前提條件查詢

通常,如果出現無效值,則方法執行就是毫無意義的。

例如,test方法的有效輸入值必須為0或1。

// input must be 0 or 1
public String test(int input) {
    // execute logic
}      

是以,在允許方法執行之前需要執行一些先決條件。

首先檢查輸入值,然後執行方法體。

// input must be 0 or 1
public String test(int input) {
    if (input < 0) throw new ArithmeticException();
    if (input > 1) throw new ArithmeticException();
    
    return input == 0 ? "male" : "female";
}