浅谈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使用break    List<String> 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<String> 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<String> 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<String> 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——————-666677779999d——————-6666777788889999a——————-11112222b——————-11112222

java中jdk8的forEach()方法return血的教训!

啊啊啊!记录。。。

JDK8中return竟然不return了。。。

but:::

2、

两个for循环作对比,如下:

以上为个人经验,希望能给大家一个参考,也希望大家多多支持。

不如意的时候不要尽往悲伤里钻,想想有笑声的日子吧

浅谈Java8 的foreach跳出循环break/return

相关文章:

你感兴趣的文章:

标签云: