考虑一个包含四个元素的布尔数组。最初,所有元素都是错误的。 do-while循环将执行一些测试并更改每个元素的状态,直到所有四个元素都为真。
boolean[] pickedSuits = new boolean[4];
do {
...some testing...
} while (pickedSuits[0] != true && pickedSuits[1] != true && pickedSuits[2] != true && pickedSuits[3] != true);
是否有Java方法来比较元素的范围而不是单独测试每个元素?我在想没有for循环,比如:
while (pickedSuits[0-3] != true);
答案 0 :(得分:2)
虽然没有布尔流,但您可以使用IntStream
。
do {
...
} while (IntStream.range(0, pickedSuits.length).noneMatch(i -> pickedSuits[i]));
答案 1 :(得分:1)
如评论中所述,您可以编写辅助方法:
boolean rangeIsTrue(boolean[] arr, int start, int end) {
for(int i = start; i < end; i++) if(!arr[i]) return false;
return true;
}