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