尝试创建一个方法来检查数组是否只包含1或4

way*_*yoo 3 java arrays methods

static boolean checkNum(int[] array) {

    boolean bool = true;

    for (int i = 0; i < array.length; i++) {

        if (array[i] != 1 || array[i] != 4) {
            return !bool;
        }
        i++;
    }
    return bool;
}
Run Code Online (Sandbox Code Playgroud)

我尝试过几种编码,但没有任何运气.我应该怎么做?它只需要通过数组并找到任何不是1或4的东西,否则它应该是真的.

Tim*_*imo 7

您的代码中有两个问题:

  • array[i] != 1 || array[i] !=4永远评估为true.任何数字都不是1或不是4.

    您正在寻找条件array[i] != 1 && array[i] !=4,其中"数字不是1 不是4".另一个有效的替代方案是!(array[i] == 1 || array[i] == 4),它说"的数目不 1 4".你最终选择哪一个取决于你的个人喜好.

  • 正如其他人指出的那样,i++循环内部是冗余的,并使循环跳过每隔一个元素.

这个版本应该解决你的问题:

static boolean checkNum(int[] array) {

    for (int i = 0; i < array.length; i++) {

        if (array[i] != 1 && array[i] != 4) {
            return false;
        }

    }

    return true;
}
Run Code Online (Sandbox Code Playgroud)

你看到除了变量之外还有可能bool吗?

额外奖励:如果你使用forEach循环而不是for循环,那就更清楚了:

static boolean checkNum(int[] array) {

    for (int i : array) {

        if (i != 1 && i != 4) {
            return false;
        }

    }

    return true;
}
Run Code Online (Sandbox Code Playgroud)