我有两个fors,在嵌套for之后,我有一些代码,如果嵌套for中的条件为真,我就不想执行这些代码。如果我使用break,代码将会执行,因此(正如我在SCJP中所学),我使用continue label;作为外部窗体。这是Java的弃用用法吗?老式的?有人建议使用递归或其他方法,但对我来说,这是非常正常的,简单的,最新的,完美的方法。
here:
for (bla bla) {
for (bla bla) {
if (whatever) continue here;
}
// some code I don't want to execute if whatever is true
}谢谢
编辑:
如果我将我的问题重新表述为:如何在多个嵌套的fors之间“导航”?这种方法是“推荐”的方式吗?因为这是南华早报的书上说的。如果不是..。这是否意味着Katherine Sierra和Bert Bates是错误的?
Edited2:
为什么不鼓励使用continue label;?我想要一个OOP或Java的概念或内部工作原理的答案,可能会出什么问题……
发布于 2011-07-11 20:46:53
答案是:视情况而定。如果你发现自己经常使用continue,那么这可能是你的代码需要重构的信号。然而,在您给出的场景中,它似乎是一个可以使用它的地方。
发布于 2011-07-11 20:50:09
我会重构以使其更具可读性。
示例:
if (!checkWhatever()) {
// some code I don't want to execute if whatever is true
}
boolean checkWhatever() {
for (bla bla) {
for (bla bla) {
if (whatever) return false;
}
}
return true;
}发布于 2011-07-11 20:46:10
我会说这是令人沮丧的。在替代方案更复杂或更容易出错的地方,它仍然有有效的用途(即不是一种改进)
https://stackoverflow.com/questions/6650239
复制相似问题