我最近重新发现了使用打破标签.现在我想知道是否有可能从另一个班级回到标签.
我想要的例子:
label:
for (Product p : ProductList) {
if (p.getSet() == true) {
classHandler();
}
}
Run Code Online (Sandbox Code Playgroud)
someFunction() {
break label;
}
Run Code Online (Sandbox Code Playgroud)
当我输入这个时,我实际上尝试在我的Main班级中创建一个本地函数(所以我可以调用该函数)但是即使在那里我也得到了undefined label: label错误.
不,你不能.你不应该.
如果破坏的条件是一些问题,那么抛出异常将是正确的方法.
否则你应该做一些事情,比如返回一个标志,指示是否仍然应该处理其他产品并对你的循环做出反应.
当你发现你甚至不能break过法,边界,这是一个很好的事情.break并且continue是强大的工具,但如果以错误的方式使用,很容易使代码混乱.例如,break隐藏在巨大代码块中的内容很容易被遗漏,但如果您continue在方法的最顶层使用a 来跳过基于某些条件的迭代,那么意图非常明确.
| 归档时间: |
|
| 查看次数: |
554 次 |
| 最近记录: |