何时使用继续[关闭]
Posted
技术标签:
【中文标题】何时使用继续[关闭]【英文标题】:When to use continue [closed] 【发布时间】:2014-02-22 22:22:16 【问题描述】:我一直在阅读 javascript:好的部分。有一个部分:坏部分。这直接来自书:
继续声明 continue 语句跳转到循环的顶部。我从未见过没有通过重构删除 continue 语句来改进的代码。
所以我的问题是,是否有需要继续的情况?
【问题讨论】:
许多好的问题会根据专家的经验产生一定程度的意见,但这个问题的答案往往几乎完全基于意见,而不是事实、参考资料或特定专业知识。道格拉斯·克罗克福德是一个非常固执己见的人。就个人而言 - 我也不喜欢continue
,但这完全是主观的。
完全同意@BenjaminGruenbaum 这里是另一篇文章,讨论了很多情况:***.com/questions/7973115/…
【参考方案1】:
双方都有强烈的意见,continue
是否有用。但它从来不是必需的。如果你愿意,你总能找到绕过它的方法。
【讨论】:
【参考方案2】:有些人认为,如果您的循环中有continue
,那么它可能应该被重构或重写。 continue
有合法用途,但通常可以避免使用。举个例子:
for (var i = 0; i < particles.count(); ++i)
if (OutOfBounds(particles[i]))
RemoveFromArray(particles[i]));
++i;
continue;
在这种情况下,continue
是不必要的,因为循环中没有其他内容,但如果您要在初始检查后执行其他操作,那就是这样了。
此外,如果您有一个带有嵌套条件的复杂循环,它有助于提高可读性。例如,您可能有一堆无关变量,如quitLoop1
和quitLoop2
等。
【讨论】:
particles.filter(function(particle) return !OutOfBounds(particle);)
是一个 lot 清洁器,并且做同样的事情。然后你就可以循环了。
另外,问题是:“是否有需要继续的情况?”而你并没有真正回答。【参考方案3】:
根据我的经验,continue
语句在满足循环中的条件时很有用,并且您不想在 该 迭代中执行循环中的其余代码。您对其有用性意见不一的原因是,许多人会争辩说有更好的方法来重写您的代码,因此您不必使用它。在我看来,这个论点完全是为了便于阅读。
我从未在 javascript 中使用过continue
,因为我编写的大部分 javascript 都是简单的 DOM 操作。但是,我在各种 Python 程序中使用了continue
,在某些情况下跳过循环可能很有用(如上所述)。
【讨论】:
以上是关于何时使用继续[关闭]的主要内容,如果未能解决你的问题,请参考以下文章
何时使用 Redux-saga / Redux thunk 何时不使用? [关闭]
何时使用向量中的对象以及何时使用指向向量中对象的指针? [关闭]