如何制作检查数组中是否存在奇数的方法?

时间:2018-03-02 12:16:47

标签: java

我试图制作一个检查数组中是否存在奇数的方法。如果有一个奇数,它应该返回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;
}

4 个答案:

答案 0 :(得分:1)

当你找到第一个奇数时,你可以直接返回。

 Range("T_myPendingApprovals[#All]").ListObject.Refresh

答案 1 :(得分:0)

您需要退出条件。只要数字不均匀,就可以通过返回true来执行此操作,例如

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

答案 2 :(得分:0)

问题是你的方法应该尽快返回 ,因为它找到了一个奇数。现在,您的代码遍历整个数组,并为每个数字分配hasUneven值。 10是最后一个,因此是偶数。

尝试将if构造替换为:

if (uneven % 2 != 0) {
   return true;
}

...
return false;

答案 3 :(得分:0)

for(int i=0; i<a.length; i++){
if(a[i]/2=0)
return true;
}else{
return false }