0
点赞
收藏
分享

微信扫一扫

Java8中的foreach跳出循环break/return

知年_7740 2022-03-30 阅读 104


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-------------------

6666

7777

9999

d-------------------

6666

7777

8888

9999

a-------------------

1111

2222

b-------------------

1111

2222






梅花香自古寒来


举报

相关推荐

0 条评论