java - 从一个多层嵌套循环中直接跳出

原文 标签 IT工具网 java

问题

Java中如何从一个多层嵌套循环中退出,例如下面,有两个循环,break只能退出一个for循环,不能直接跳过第二个for循环

for (Type type : types) {  
    for (Type t : types2) {  
         if (some condition) {  
             // Do something and break...  
             break; // 这样只退出了最里的for循环  
         }  
}}  

回答

可以用break+label的语法,例子如下

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");  
  }  
}  

首先在for循环前加标签,如例子中的outerloop,然后在for循环内break label(如本例的outerloop),就会跳出该label指定的for循环。

stackoverflow链接: http://stackoverflow.com/questions/886955/breaking-out-of-nested-loops-in-java

相关文章:

java去掉烦人的"!=null"(判空语句)

JavaScript中的事件委托(delegate)

c# - 将Java TCP套接字聊天程序转换为.net C#TCP聊天程序

java - Java声明字节时可能会失去精度

java - chrome 无法在 Selenium Webdriver 中运行。我正在使用 Selenium 3.0.1 Chrome v-54.0

比较java枚举成员使用equal还是==

java如何在整数左填充0

java - 如何使用面板管理Java Applet?

java如何处理 java.lang.outOfMemoryError PermGen space error

java - 当clip.stop();时,AudioSystem剪辑不会停止播放。运行