如何在不离开的情况下停止循环(没有“中断”)

时间:2018-01-02 14:12:43

标签: javascript

例如我有这个:

for (i = 0; i < wLength; i++) {
   if(dummy === word.charAt(i)) {
        letters[i] = dummy;
        //cs == 0 ? score1++ : score2++
   } else {
      fail++
      break;
   }
}

它会'fail'增加'wLength'次,但我只想让它在每次迭代时递增一次(如果'dummy'为假)并且不使用break(因为它会离开整个循环。)

4 个答案:

答案 0 :(得分:0)

您可以尝试使用&#34;继续&#34;。它会在不离开的情况下进入下一轮循环。

 for(i = 0; i < wLength; i++){
    if(dummy === word.charAt(i)) {
        letters[i] = dummy;
        //cs == 0 ? score1++ : score2++
    }
    else {
             fail++;
             continue;
         }
}

答案 1 :(得分:0)

你总是可以使用“while”循环而不是“for”I.E。:

var n = 0;
var x = 0;

while (n < 3) {
  n++;
  x += n;
}

答案 2 :(得分:0)

你有一个语法错误fail++(其中是分号)这就是为什么它在条件失败后停止

for(i = 0; i < wLength; i++){
                        if(dummy === word.charAt(i)) {
                            letters[i] = dummy;
                            //cs == 0 ? score1++ : score2++
                        }
                        else {
                            fail++;

                        }
                    }

答案 3 :(得分:0)

您可以使用标志变量来满足您的要求

let flag = true 
for (i = 0; i < wLength; i++) {
    if(dummy === word.charAt(i)) {
        letters[i] = dummy;
        //cs == 0 ? score1++ : score2++
    }else if (flag) {
        flag = false
    }
}
if (!flag) fail+=1