我试图做一个检查数组中是否有奇数的方法。如果有奇数,则应返回true。如果数组中没有奇数,则应返回false。例如,如果数组a为{1,2,3},则应返回true,因为存在奇数。

这是数组:

int[] arraySum1 = { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 };


问题是布尔变量hasUneven每次进入for循环都会被重置。在这种情况下,它只会检查最后一个值为10的值,然后在我每次调用该方法时都返回false。

到目前为止,这是我的代码:

public boolean hasUneven(int[] a) {
    boolean hasUneven = false;
    int uneven = 0;

    for (int i = 0; i < a.length; i++) {
        uneven = a[i];

        if (uneven % 2 != 0) {
            hasUneven = true;
        } else {
            hasUneven = false;
        }
    }

    return hasUneven;
}

最佳答案

找到第一个奇数就可以直接返回。

public boolean hasUneven(int[] a) {
    for (int i = 0; i < a.length; i++) {
        if (a[i] % 2 != 0) {
            return true;
        }
    }
    return false;
}

10-06 02:39