我有一个非常笨重的方法来做到这一点。但是想找出一个更精简的循环方法。我想通过我的数组,并测试每个元素是否高于某个值。在这种情况下说,50。
继承我所拥有的:
boolean found0 = false;
for (int k = 0; k < array.length ; k++) {
if (array[0] >= 50 &&
array[1] >= 50 &&
array[2] >= 50 &&
array[3] >= 50 &&
array[4] >= 50 &&
array[5] >= 50) {
found0 = true;
}
}
答案 0 :(得分:7)
由于您的迭代变量名为k
,因此您可以检查数组中k
元素的&gt; = 50.
如果某些数组元素小于50,我们可以将标志设置为false
并打破循环。
boolean ok = false;
for (int k = 0; k < array.length ; k++) {
if (array[k] >= 50) {
ok = true;
} else {
ok = false;
break; //Break the loop, because we have at least one, which is < 50
}
}
更好的是,我们可以缩短if/else
语句并检查我们是否至少有一个元素,小于50。
boolean ok = true;
for (int k = 0; k < array.length; k++) {
if (array[i] < 50) {
ok = false;
break;
}
}
答案 1 :(得分:1)
这些类型的测试最好封装在一个方法中。您可以使用简单的“for each”循环:
private boolean areAllElementsAtLeast(int[] array, int value) {
for(int i : array) {
if (i < value) {
return false;
}
}
return true;
}
对于您的示例,您可以这样称呼它:
if (areAllElementsAtLeast(array, 50)) {
// All elements in the array are >= 50
}
答案 2 :(得分:-1)
这样做
boolean found0 = true;
for (int k:array){
if (!(k >= 50)){
found0 = false;
break;
}
}