如何突破Java中的嵌套循环? [英] How do I break out of nested loops in Java?

查看:81
本文介绍了如何突破Java中的嵌套循环?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我有一个像这样的嵌套循环结构:

I've got a nested loop construct like this:

for (Type type : types) {
    for (Type t : types2) {
         if (some condition) {
             // Do something and break...
             break; // Breaks out of the inner loop
         }
    }
}

现在如何才能摆脱两个循环?我看过类似的问题,但没有一个是Java特有的.我无法应用这些解决方案,因为大多数使用的gotos.

Now how can I break out of both loops? I've looked at similar questions, but none concerns Java specifically. I couldn't apply these solutions because most used gotos.

我不想将内部循环使用其他方法.

I don't want to put the inner loop in a different method.

我不想重新运行循环.中断时,我完成了循环块的执行.

I don't want to rerun the loops. When breaking I'm finished with the execution of the loop block.

推荐答案

像其他答复者一样,我肯定会 prefer 将循环放入其他方法中,此时您可以返回到完全停止迭代.该答案仅说明了如何满足问题中的要求.

Like other answerers, I'd definitely prefer to put the loops in a different method, at which point you can just return to stop iterating completely. This answer just shows how the requirements in the question can be met.

您可以将break与带有标签的外部循环一起使用.例如:

You can use break with a label for the outer loop. For example:

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

这篇关于如何突破Java中的嵌套循环?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆