java中的字符retry

作者: 一岁一枯荣啊 | 来源:发表于2019-10-16 17:01 被阅读0次

    在线程池源码的时候,ThreadPoolExecutor#addWorker(Runnable firstTask, boolean core)方法中遇到了这样的写法,有点疑惑

    retry:
        for(;;){
            for (;;) {
                    if (xxx)
                        break retry;
                }
        }
    
    代码模拟:场景 :循环5次,内部循环体也是循环5次。当内部循环体变量==7 结束循环

    不使用retry

    for (int i = 0; i < 5; i++) {
         System.out.println("第" + i + "次循环");
             for (int j = 5; j < 10; j++) {
                 if (j == 7) {
                 break;
             }
             System.out.println(j);
         }
     }
     
    结果:
    ---------------------------------
    第0次循环
    5
    6
    第1次循环
    5
    6
    第2次循环
    5
    6
    第3次循环
    5
    6
    第4次循环
    5
    6
    

    使用retry

      retry:
            for (int i = 0; i < 5; i++) {
                System.out.println("第" + i + "次循环");
                for (int j = 5; j < 10; j++) {
                    if (j == 7) {
                        break retry;
                    }
                    System.out.println(j);
                }
            }
    结果:
    ---------------------------------
    第0次循环
    5
    6
    

    分析

    使用retry 可以结束多个嵌套的循环体,退出到retry标记的同一级for循环

    相关文章

      网友评论

        本文标题:java中的字符retry

        本文链接:https://www.haomeiwen.com/subject/nfuumctx.html