Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/loops/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在javascript中正确使用continue_Javascript_Loops - Fatal编程技术网

在javascript中正确使用continue

在javascript中正确使用continue,javascript,loops,Javascript,Loops,我一直认为您可以按如下方式使用continue: var i; for (i = 0; i < 10; i++) { if(i%2===0) { continue; } } vari; 对于(i=0;i

我一直认为您可以按如下方式使用continue

var i;

for (i = 0;  i < 10; i++) {
  if(i%2===0) {
    continue;
  }
}   
vari;
对于(i=0;i<10;i++){
如果(i%2==0){
继续;
}
}   

vari,myloop;
myloop:for(i=0;i<10;i++){
如果(i%2==0){
继续myloop;
}
}
但当我运行这两段代码时,我得到了错误:

Problem at line 5 character 5: Unexpected 'continue'. continue; 第5行的问题字符5:意外的“继续”。 继续; 我做错了什么?正确的用法是什么?

我想:

几乎总是有更好的写作方式 语句,更明确地定义在没有 求助于继续。JSLint是关于好的部分,而不是关于 可接受的零件。它迫使您使用比标准更高的标准 定义

道格拉斯在他的书中说得最好:

“continue语句跳转到循环的顶部。我从未见过任何片段 未通过重构来删除“继续”而得到改进的代码的数量 声明。”


您必须勾选“容忍继续”。

JSlint底部有一个选项

容忍继续


也许它有问题?

JSLint不喜欢
continue
,因为道格拉斯不喜欢它


继续
跳到下一个迭代。如果不插入它,代码将继续执行。如果要退出循环,请使用
break

这对我来说已经足够好了。
//eslint禁用下一行不继续

这太愚蠢了。”“继续”使循环中的“提前退出”变得容易。我想内部循环可以放在外部函数中,以保持可读性,但这并不总是方便的。@Evert:你一定把continue和break混淆了(break按你说的做,Crockford并不反对)。不,对不起。。假设您想循环一个数组,但只对该数组中的某些元素执行某些操作。如果(!条件)继续,我可以做;在循环的顶部,或者if(condition){..}stuff。前者的优点是嵌套少了一个层次。@Evert:我明白了,现在我明白你的措辞了(‘在循环中提前退出’把我弄糊涂了)。关于continue与nesting的问题,关键是拥有额外级别的nesting是一件好事,因为它提供了一个清晰的视觉线索,即代码仅在满足条件时才应用。(就我个人而言,我不确定我是更同意克罗克福德还是你,但我绝对不会称之为“如此愚蠢”。)我从来都不明白什么东西这么难读。在你建立的第二次迭代中,你不再需要在给定的迭代中做任何其他事情,没有理由不使用它。你必须将
var i
向上移动,才能达到这个程度,对吗?改进代码是JSLint的第二个关注点,强制执行DougCrockford关于JavaScript是其第一个的个人观点。如果你想要一个不那么固执己见的选择,总会有办法的。JSHint。杰斯林特太教条了。 Problem at line 5 character 5: Unexpected 'continue'. continue;