Java在单个IF语句中包含不同数量的条件

时间:2014-12-12 22:03:44

标签: java if-statement for-loop conditional-statements

我有一个算法需要在每次迭代中使用不同if条件的单&&语句。例如,我们有以下代码:

int k = 0, d = 2;
if (arr[i] != b[0] && arr[i] != b[1]) {
    a[k] = arr[i];
    k = k + 1;
}

此处每次随机选择dd的条件数,即d == 3,那么我需要if语句如下

if (arr[i] != b[0] && arr[i] != b[1] && arr[i] != b[2]) { ... }

另外,如果d == 4我需要四个条件,依此类推。

我的代码需要完成最后一步。但是,我还没有解决这个问题,我真的很感激任何帮助。

3 个答案:

答案 0 :(得分:1)

迭代数组,并使用布尔变量来保存结果。像,

boolean val = true; 
for (int j = 0; j < d; j++) {
    if (arr[i] == b[j]) {
        val = false;
        break;
    }
}
if (val) {
    a[k] = arr[i];
    k = k + 1;
}

答案 1 :(得分:0)

怎么样

boolean isTrue(Object[] arr, int i, Object... b) { /* compare subarrays */ }

if( isTrue(arr, i, b) ) {
    ...
}

答案 2 :(得分:0)

如果d始终是b数组的大小,则可以使用

if (!Arrays.asList(b).contains(arr[i])) {
    // ...
}