例如我想做这样的事情:
package tst;
public class forInif {
public static void main(String[] args) {
int[] a = {1,2,3,4,5};
if (for(int i : a) {i == 5;}) {/**/}
}
}
我通常知道我应该自己制作这种情况的布尔值,但为了以防万一,无论如何都要做那样的事情,而不是在其他地方做一个布尔值?
答案 0 :(得分:1)
在Java 8+中,您可以使用IntStream.anyMatch
:
if (IntStream.of(a).anyMatch(i -> i == 5)) { ...
答案 1 :(得分:0)
非直接否:Java if
中的条件检查需要是boolean
类型。但你可以构建一个函数:
public class forInif {
public static void main(String[] args) {
int[] a = {1,2,3,4,5};
if (foo(a)) {/**/}
}
}
其中foo
是一个返回boolean
的函数,该函数将int[]
作为参数。
答案 2 :(得分:0)
没有办法让for循环返回一个布尔值。然而,溪流听起来像是用一两行代表的好方法:
int[] a = {1,2,3,4,5};
int fives = Arrays.stream(a).filter(e -> e == 5).count();
if (fives > 0) {
//replace this with whatever you want to do when a five is found
System.out.println("One or more fives exists in the array");
}