簡體   English   中英

簡化if語句

[英]Simplify the if statement

我有這樣的if語句

int val = 1;
if (val == 0 || val == 1 || val == 2 || ...);

有沒有辦法以更簡化的方式做到這一點? 例如:

int val = 1;
if (val == (0 || 1 || 2 || ...));

我決定通過創建這樣的函數來解決這個問題:

public boolean ifor(int val, int o1, int o2, int o3) {
    return (val == o1 || val == o2 || val == o3);
}

但這還不夠,因為如果我想在ifor添加另一個參數,例如o4 ,我就做不到(我應該用new參數創建另一個函數),還是我想減少o1o2的參數。 我老實說不知道我是否解釋過,如果你問,我會盡力解釋。

您可以使用varargs來概括該函數:

public boolean ifor(int val, int... comparisons){
    for(int o : comparisons){
        if(val == o) return true;
    }
    return false;
}

然后你可以像任何其他函數一樣調用它,無論你想要多少比較。

Arrays.asList(options).contains(value) // check if int value in int[] array called options

您可以使用具有有效值的枚舉或Arraylist,然后使用相應的函數來檢查值。

使用Array List的一個這樣的例子

List list = Arrays.asList(1,2,3,4); ... if(list.contains(3)){/ ...}

暫無
暫無

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

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