我有一个像这样的嵌套循环构造:
for (Type type : types) { for (Type t : types2) { if (some condition) { // Do something and break... break; // Breaks out of the inner loop } } }
现在如何摆脱两个循环?我看过类似的问题,但没有一个是Java特有的。我无法应用这些解决方案,因为大多数使用的gotos。
我不想将内部循环使用其他方法。
我不想重新运行循环。中断时,我完成了循环块的执行。
像其他答复者一样,我绝对希望将循环放入另一种方法中,此时你可以返回以完全停止迭代。该答案仅显示了如何满足问题中的要求。
你可以将break标签与外循环一起使用。例如:
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"); } }
打印:
0 0 0 1 0 2 0 3 0 4 1 0 1 1 1 2 1 3 1 4 2 0 2 1 2 2 2 3 Breaking Done