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