何时使用继续[关闭]

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 是不必要的,因为循环中没有其他内容,但如果您要在初始检查后执行其他操作,那就是这样了。

此外,如果您有一个带有嵌套条件的复杂循环,它有助于提高可读性。例如,您可能有一堆无关变量,如quitLoop1quitLoop2 等。

【讨论】:

particles.filter(function(particle) return !OutOfBounds(particle);) 是一个 lot 清洁器,并且做同样的事情。然后你就可以循环了。 另外,问题是:“是否有需要继续的情况?”而你并没有真正回答。【参考方案3】:

根据我的经验,continue 语句在满足循环中的条件时很有用,并且您不想在 迭代中执行循环中的其余代码。您对其有用性意见不一的原因是,许多人会争辩说有更好的方法来重写您的代码,因此您不必使用它。在我看来,这个论点完全是为了便于阅读。

我从未在 javascript 中使用过continue,因为我编写的大部分 javascript 都是简单的 DOM 操作。但是,我在各种 Python 程序中使用了continue,在某些情况下跳过循环可能很有用(如上所述)。

【讨论】:

以上是关于何时使用继续[关闭]的主要内容,如果未能解决你的问题,请参考以下文章

何时使用 Redux-saga / Redux thunk 何时不使用? [关闭]

何时使用向量中的对象以及何时使用指向向量中对象的指针? [关闭]

使用 Java servlet 时何时打开以及何时关闭 mysql 连接?

何时关闭 SQLite 数据库(使用 FMDB)

何时关闭休眠会话?

何时使用 React [关闭]