4

whilecontinue ステートメントでループを作成しようとしています。ただし、無限ループを引き起こしているようで、その理由はわかりません。

var tasksToDo以下のコードは、3 で始まり、途中で 2 をスキップして 0 まで減少するように思われます。

var tasksToDo = 3
while (tasksToDo > 0) {
    if (tasksToDo == 2) {
        continue;
    }
    console.log('there are ' + tasksToDo + ' tasks');
    tasksToDo--;
}
4

7 に答える 7

3

conitnue、while ループに戻ります。また、tasksToDo が 2 を超えて減少することはありません。

var tasksToDo = 3
while (tasksToDo > 0) {
if (tasksToDo == 2) {
 tasksToDo--;             // Should be here too.
 continue;
}

console.log('there are ' + tasksToDo + ' tasks');
tasksToDo--;
}
于 2013-08-23T12:56:33.150 に答える
1

continueループはデクリメントをスキップし、最初からやり直します。一度tasksToDo2 になると、ずっと 2 のままです。

于 2013-08-23T12:56:40.807 に答える
0

あなたが何をしているのかはあまり明確ではありませんが、私が理解していることから、内部でロジックを実行することを避けようとしていますtasksToDo = 2

var tasksToDo = 3
while (tasksToDo > 0) {
    if (tasksToDo != 2) {
        console.log('there are ' + tasksToDo + ' tasks');
    }
    tasksToDo--;
}

tasksToDo = 2その条件を while ( ) に追加する方が簡単なので、ブレークを追加しても意味がありませんtasksToDo > 2

ただし、ここのコードは実際のコードとはまったく異なる可能性があるため、何かが欠けている可能性があります。

于 2013-08-23T12:59:12.123 に答える
0

あなたはcontinue;ループを永遠に続けることを使用してい break;ますcontinue;

于 2013-08-23T13:00:56.683 に答える
0

continueループの先頭に戻ります。breakおそらく代わりに使用したかったでしょう。

または、ブロックのに減分を行うこともできます。if

于 2013-08-23T12:56:18.710 に答える