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

Java在单个IF语句中包含不同数量的条件,java,if-statement,for-loop,conditional-statements,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; } 这里条件的数量取决于d,并且每次都随机选择d,也就是说,如果d==3,那么我需要if语句如下 if (arr[i] != b[0] && arr[i] != b[1] && ar

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

int k = 0, d = 2;
if (arr[i] != b[0] && arr[i] != b[1]) {
    a[k] = arr[i];
    k = k + 1;
}
这里条件的数量取决于
d
,并且每次都随机选择
d
,也就是说,如果
d==3
,那么我需要if语句如下

if (arr[i] != b[0] && arr[i] != b[1] && arr[i] != b[2]) { ... }
另外,如果
d==4
我需要四个条件,依此类推


我的代码要求完成这最后一步。但是,我还不能解决这个步骤,我将非常感谢您的帮助。

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

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;
}
boolean val=true;
对于(int j=0;j
怎么样

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

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

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

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

使用从0到
d
的循环。对于任意大的
d
s,它不能在单个
if
语句中完成。您不能更改条件的数量,它是静态的。但是你可以使用函数来完成这项工作:
if(checkArray(arr,b,d))
然后你在这个函数中做一个循环。非常感谢,我会试试。非常感谢,我现在就试试。