今天在开发中,使用forEach()来遍历元素执行业务操作,发现如果判断不符合某个条件时就要continue
,不能继续向后执行了。但是在forEach()中不能使用for循环中的continue和break
,那改如何退出呢?
答案是:使用return
可以达到和continue
一样的效果。
public class ForEachAndContinueDemo {
public static void main(String[] args) {
List<Integer> list = Arrays.asList(1, 2, 3, 4, 5, 6, 7, 8, 9, 10);
list.forEach(s->{
if (s > 5) {
return;
}
System.out.println(s);
});
}
}
执行如上代码输出结果:
我们可以看到使用return
和continue
的效果是一样的。
这是为什么呢?
因为forEach()执行的是一个lambda表达式,本质就是一个函数,就是让列表中的每一个元素来执行这个函数。使用return
将当前函数返回,下一个元素继续执行这个函数。
所以看起来在forEach()中使用return
和for中使用continue
的输出结果是一样的,但其实它们之间是有非常本质的区别的。