如果条件语句作为捷径,有没有办法把循环放在里面?

时间:2017-01-09 08:03:04

标签: java syntax

例如我想做这样的事情:

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;}) {/**/}
    }
}

我通常知道我应该自己制作这种情况的布尔值,但为了以防万一,无论如何都要做那样的事情,而不是在其他地方做一个布尔值?

3 个答案:

答案 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");
}