我的程序员修炼日记

java中的字符retry

2019-10-16  本文已影响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循环

上一篇下一篇

猜你喜欢

热点阅读