为什么模数无助于找到负奇数?

时间:2015-10-22 17:17:08

标签: java arrays modulus

我在做什么:用零替换数组中的奇数(值)。

问题:执行以下代码时,它仅替换号,忽略否定

代码

    public static int[] nullOddValues(int[] array) {

        int[] resultArray = new int[array.length];

        for (int i = 0; i < array.length; i++) {
            if (array[i] % 2 != 0) {
                resultArray[i] = 0;
            } else {
                resultArray[i] = array[i];
            }
        }

        return resultArray;
    }

2 个答案:

答案 0 :(得分:3)

当你(可能)想要测试i

时,你测试循环变量array[i]的奇怪性
if (array[i] % 2 != 0) {

答案 1 :(得分:0)

在X上使用模数返回[0-X)

  • 正X(X> 0) - >它将返回0 +

  • 负X(X <0) - >它将返回0 -

对于您的问题,我建议使用位运算符

if((i & 1) == 0)

对于偶数(正数和负数),这将返回true,因为它正在检查数字的最后一位。