zoukankan      html  css  js  c++  java
  • 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-------------------
    6666
    7777
    9999
    d-------------------
    6666
    7777
    8888
    9999
    a-------------------
    1111
    2222
    b-------------------
    1111
    2222




  • 相关阅读:
    JS运动---运动基础(匀速运动)
    浅谈浏览器解析 URL+DNS 域名解析+TCP 三次握手与四次挥手+浏览器渲染页面
    浅谈JS重绘与回流
    浅谈JS函数节流及应用场景
    浅谈JS函数防抖及应用场景
    前端模块化(CommonJs,AMD和CMD)
    Git之SSH公钥与私钥
    vi/vim编辑器必知必会
    git笔录
    vue移动端弹框组件,vue-layer-mobile
  • 原文地址:https://www.cnblogs.com/zhuyeshen/p/12157626.html
Copyright © 2011-2022 走看看