簡體   English   中英

如何編寫簡化的if條件

[英]How to write a simplified if condition

我有三個參數value1,value2,value3,應該檢查其中的四個不同值。 有沒有簡化的方法可以用Java或JavaScript編寫等效條件:

      if ((value1 == 11) || (value1 == 88) || (value1 == 66) || (value1 == 33) || 
          (value2 == 11) || (value2 == 88) || (value2 == 66) || (value2 == 33) || 
          (value3 == 11) || (value3 == 88) || (value3 == 66) || (value3 == 33)) {

這是驗證給定條件的函數的3個不同版本:

static final int[] SORTED_VALUES = new int[] {11, 33, 66, 88};

static boolean isAtLeastOneEquals1(final int value1, final int value2, final int value3) {
    for (final int i : SORTED_VALUES)
        if ((i == value1) || (i == value2) || (i == value3))
            return true;
    return false;
}

static boolean isAtLeastOneEquals2(final int value1, final int value2, final int value3) {
    return (Arrays.binarySearch(SORTED_VALUES, value1) >= 0)
            || (Arrays.binarySearch(SORTED_VALUES, value2) >= 0)
            || (Arrays.binarySearch(SORTED_VALUES, value3) >= 0);
}

static boolean isAtLeastOneEquals3(final int... values) {
    for (final int v : values)
        if (Arrays.binarySearch(SORTED_VALUES, v) >= 0)
            return true;
    return false;
}

我個人更喜歡第二個,但第三個更通用

暫無
暫無

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

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