浅谈Java8|浅谈Java8 的foreach跳出循环break/return
java8中跳出循环不能使用break?
通过测试发现:
对于java8中的特殊写法lamada表达式中,不能使用break,会提示错误;
java8中使用return,会跳出当前循环,继续下一次循环,作用类似continue;
java8中使用foreach,但是不是lamada表达式写法,可以正常使用break或者return,可以直接跳出循环.
public class TestForEachJava8 { public static void main(String[] args) {System.out.println("c-------------------"); //lamada表达式中foreach使用breakList c = Arrays.asList("6666", "7777", "8888", "9999"); c.stream().forEach(str ->{if("8888".equals(str)){return; //跳出当前循环,继续下一轮}System.out.println(str); }); System.out.println("d-------------------"); List d = Arrays.asList("6666", "7777", "8888", "9999"); d.stream().forEach(str ->{System.out.println(str); if("8888".equals(str)){break; //IDE提示错误:break cannot be used outside of a loop or a switch}}); System.out.println("a-------------------"); List a= new ArrayList<>(); a.add("1111"); a.add("2222"); a.add("3333"); a.add("4444"); for(String str:a){if("3333".equals(str)){break; //正常跳出循环}System.out.println(str); }System.out.println("b-------------------"); List b= new ArrayList<>(); b.add("1111"); b.add("2222"); b.add("3333"); b.add("4444"); for(String str:b){if("3333".equals(str)){return; //也能跳出循环}System.out.println(str); } }}
输出:
c-------------------java中jdk8的forEach()方法return血的教训! 啊啊啊!记录。。。
6666
7777
9999
d-------------------
6666
7777
8888
9999
a-------------------
1111
2222
b-------------------
1111
2222
JDK8中return竟然不return了。。。
文章图片
but:::
文章图片
2、
文章图片
【浅谈Java8|浅谈Java8 的foreach跳出循环break/return】两个for循环作对比,如下:
文章图片
以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。
推荐阅读
- 热闹中的孤独
- JAVA(抽象类与接口的区别&重载与重写&内存泄漏)
- 放屁有这三个特征的,请注意啦!这说明你的身体毒素太多
- 一个人的旅行,三亚
- 布丽吉特,人生绝对的赢家
- 慢慢的美丽
- 尽力
- 一个小故事,我的思考。
- 家乡的那条小河
- 《真与假的困惑》???|《真与假的困惑》??? ——致良知是一种伟大的力量