在两个 while 循环内中断语句

2022-09-01 11:09:53

假设我有这个:

while (a) {
  while (b) {
    if (b == 10) {
      break;
    }
  }
}

问题:break 语句会把我从两个循环中带出来,还是只从内部循环中解脱出来?谢谢。


答案 1

在您的示例中,中断语句将带您退出 while(b) 循环

while(a) {

   while(b) {

      if(b == 10) {
         break;
      }
   }  
   // break will take you here.
}

答案 2

它只会中断最直接的 while 循环。使用标签,您可以打破两个循环:看看从这里取下的这个例子


public class Test {
  public static void main(String[] args) {
    outerloop:
    for (int i=0; i < 5; i++) {
      for (int j=0; j < 5; j++) {
        if (i * j > 6) {
          System.out.println("Breaking");
          break outerloop;
        }
        System.out.println(i + " " + j);
      }
    }
    System.out.println("Done");
  }
}