今天在开发中,使用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的输出结果是一样的,但其实它们之间是有非常本质的区别的。



















