当前位置: 首页 > 面试题库 >

如何突破Java中的嵌套循环?

鲁丰
2023-03-14
问题内容

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

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


 类似资料:
  • 问题内容: 有没有比抛出异常更简单的方法来摆脱嵌套循环?(在Perl中,您可以给每个循环加上标签,至少可以继续一个外部循环。) 即,有没有比以下更好的方法: 问题答案: 至少有人建议,但也拒绝了。我认为没有其他方法,只需重复测试或重新组织代码即可。有时有点烦人。 范·罗瑟姆(van Rossum)先生在拒绝消息中提到使用,这确实很明智,我需要个人记住这一点。:)

  • 问题内容: 我尝试了这个: 只能得到: :声明前缺失 那么,我将如何打破JavaScript中的嵌套循环? 问题答案: 您应该能够打破标签,就像这样:

  • 问题内容: 在我的代码中,我有一个for循环,迭代一个代码方法,直到满足for条件为止。 反正有没有打破这个for循环? 因此,如果我们看下面的代码,如果我们想在达到“ 15”时打破这个for循环,该怎么办? 我尝试了以下无济于事: 我尝试了一个循环: 我可以实现我想要的唯一方法是打破for循环,我不能暂时将其替换,如果要使用if语句。 编辑: 仅作为示例提供了此代码,这不是我试图将其实现的代码。

  • 和其他编程语言一样, Java 允许循环嵌套。如果把一个循环放在另一个循环体内,那么就可以形成嵌套循环。 嵌套循环既可以是 for循环嵌套 while 循环,也可以是 while 循环嵌套 do-while 循环 …… 即各种类型的循环都可以作为外层循环,也可以作为内层循环。 当程序遇到嵌套循环时,如果外层循环的循环条件允许,则开始执行外层循环的循环体,而内层循环将被外层循环的循环体来执行——只是

  • 大家好,初学者, 被困在这里一段时间了。故障排除我要么得到一个无限循环,要么它只循环11次(我希望外部循环21次)。基本上,我读这是因为第一个循环将被执行,因为它将是真的,第二个循环将被执行十次,直到它不是真的。然后外部循环将绕过内部循环继续运行(因为条件不再有效),直到外部条件不再为真。 提前道谢!

  • 问题内容: 您如何在Python中说两个嵌套循环的父循环? 我知道您可以在大多数情况下避免这种情况,但是可以在Python中完成吗? 问题答案: 摆脱内循环(如果之后没有其他东西) 将外部循环的主体放入函数中并从函数返回 引发异常并在外部捕获它 设置一个标志,从内部循环中断开并在外部级别对其进行测试。 重构代码,因此您不再需要这样做。 我每次都会带着5。