在阅读Java的线程池ThreadPoolExecutor源码的时候发现了有使用retry retry就是起到标识作用,可以认为是给retry下一行的循环起个名字 若直接使用break那跳出的就是本次循环,使用break retry就是跳出retry标识下的循环
当然retry只是一个名字,可以取其他名字 retry不仅可以给for循环起名,while也可以
public class Retry {
public static void main(String[] args) {
breakRetry();
System.out.println("------------------");
continueRetry();
System.out.println("------------------");
whileRetry();
}
public static void breakRetry(){
int i = 0;
retry:
for (;;){
System.out.println("Start");
for (;;){
i++;
if (i == 5)
break retry;
System.out.println(i);
}
}
}
public static void continueRetry(){
int i = 0;
retry:
for (;;){
System.out.println("Start");
for (;;){
i++;
if (i == 3)
continue retry;
System.out.println(i);
if (i == 5)
break retry;
}
}
}
public static void whileRetry(){
int i = 0;
retry:
while (true){
System.out.println("Start");
for (;;){
i++;
if (i == 3)
continue retry;
System.out.println(i);
if (i == 5)
break retry;
}
}
}
}
|