簡體   English   中英

簡化具有多個條件的 if 語句

[英]Simplify if statement with multiple conditions

我堅持簡化這樣的 if 語句。 我的項目中的 if 語句看起來有點像這樣,但有點復雜。 我有更多帶有多個 OR 條件的 if 和 if else 條件。

private int testMethod(int a, char b, String s, float f, double d, TestClass testClass){
    if (a == 2 || s.equals("testString") || f == 5 || d == 4 || testClass.getName().equals("testName")){
        return 1;
    }else if (a == 3 || f == 10 || d == 1){
        return 2;
    }else {
        return 3;
    }
}

有沒有辦法簡化這樣的 if 語句? 謝謝!

如果你可以簡化這個,你可以試試這個。 但我認為你的代碼需要重構:)

private int testMethod(int a, char b, String s, float f, double d, TestClass testClass){
    return isaBoolean(a, s, f, d, testClass) ? 1 : isaBoolean(a, f, d) ? 2 : 3;
}

private boolean isaBoolean(int a, float f, double d) {
    return a == 3 || f == 10 || d == 1;
}

private boolean isaBoolean(int a, String s, float f, double d, TestClass testClass) {
    return a == 2 || s.equals("testString") || f == 5 || d == 4 || testClass.getName().equals("testName");
}

您可以嘗試使用一些 boolean 邏輯與實際條件進行檢查,但如果您有一個需要f == 5d == 4的條件,那么沒有比f == 5 || d == 4更快的方法了f == 5 || d == 4

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM