首页 > Java > 我怎样才能打破这两个循环?不想将内部循环放在不同的方法?

我怎样才能打破这两个循环?不想将内部循环放在不同的方法?

上一篇 下一篇

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

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

现在我怎样才能打破这两个循环?我看过类似的问题,但没有一个专门涉及Java。我无法应用这些解决方案,因为大多数使用gotos。

我不想将内部循环放在不同的方法中。

我不想返回循环。中断时,我完成了循环块的执行。

分割线

网友回答:

从技术上讲,正确的答案是标记外环。实际上,如果您想在内部循环中的任何点退出,那么最好将代码外部化为方法(如果需要,可以使用静态方法),然后调用它。

这将为可读性带来回报。

代码将变成这样的内容:

private static String search(...) 
{
    for (Type type : types) {
        for (Type t : types2) {
            if (some condition) {
                // Do something and break...
                return search;
            }
        }
    }
    return null; 
}

匹配接受答案的示例:

 public class Test {
    public static void main(String[] args) {
        loop();
        System.out.println("Done");
    }

    public static void loop() {
        for (int i = 0; i < 5; i++) {
            for (int j = 0; j < 5; j++) {
                if (i * j > 6) {
                    System.out.println("Breaking");
                    return;
                }
                System.out.println(i + " " + j);
            }
        }
    }
}

分割线

网友回答:

像其他回答者一样,我绝对希望将循环放在不同的方法中,此时您可以返回以完全停止迭代。这个答案只是显示了如何满足问题中的要求。

您可以与外部循环的标签一起使用。例如: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

分割线

网友回答:

您可以在循环周围使用命名块:

search: {
    for (Type type : types) {
        for (Type t : types2) {
            if (some condition) {
                // Do something and break...
                break search;
            }
        }
    }
}

模板简介:该模板名称为【我怎样才能打破这两个循环?不想将内部循环放在不同的方法?】,大小是暂无信息,文档格式为.编程语言,推荐使用Sublime/Dreamweaver/HBuilder打开,作品中的图片,文字等数据均可修改,图片请在作品中选中图片替换即可,文字修改直接点击文字修改即可,您也可以新增或修改作品中的内容,该模板来自用户分享,如有侵权行为请联系网站客服处理。欢迎来懒人模板【Java】栏目查找您需要的精美模板。

相关搜索
  • 下载密码 lanrenmb
  • 下载次数 231次
  • 使用软件 Sublime/Dreamweaver/HBuilder
  • 文件格式 编程语言
  • 文件大小 暂无信息
  • 上传时间 02-17
  • 作者 网友投稿
  • 肖像权 人物画像及字体仅供参考
栏目分类 更多 >
热门推荐 更多 >
html5 微信模板 微信文章 自适应 微信公众平台 单页式简历模板 微信图片 微信素材 响应式 企业网站
您可能会喜欢的其他模板