16

MDN の状態:

ラベルなしで使用するcontinueと、最も内側のwhile,do-whileまたはforステートメントの現在の反復が終了し、次の反復でループの実行が継続されます。

次のコードが期待どおりに機能しない理由がわかりません。

do {
  continue;
} while(false);

while条件は ですが、ブロックの先頭に向かってジャンプし、すぐに再び実行されるなど、false永久に実行されることを期待しています。しかし、どういうわけか、ループは 1 回の反復後に終了します。無視されているようです。continuecontinuecontinue

ループcontinue内ではどのように機能しますか?do-while

4

7 に答える 7

12

このjsFiddleをチェックしてください:http://jsfiddle.net/YdpJ2/3/

var getFalse = function() {
  alert("Called getFalse!");
  return false;
};

do {
  continue;
  alert("Past the continue? That's impossible.");
} while( getFalse() );​

継続にヒットし、その反復から抜け出してチェック条件を実行しているように見えます。条件が偽であるため、終了します。

于 2012-06-30T13:27:08.860 に答える
9

continueチェックをスキップしませんwhile(false)が、括弧内の残りのコードを単に無視します。

于 2012-06-30T13:23:41.000 に答える
5

Continue は、ブロック内の残りのコードの実行を停止し、ループの次の繰り返しに直接ジャンプします。

あなたがやっているのでwhile(false)、次の反復はありません

于 2012-06-30T13:23:02.157 に答える
4

continue現在の反復をやり直すことはありませんが、次の反復にスキップします (MDN の引用で述べたように)。

条件があるためfalse、次の反復はありません。したがって、ループ全体が完了します。

于 2012-06-30T13:23:51.297 に答える
3

continue はブロックの先頭に向かってジャンプするため、永遠に実行されることを期待しています

ブロックの先頭にジャンプするのcontinueではなく、ブロックの最後にジャンプします。

于 2012-06-30T13:40:20.710 に答える
3

継続後、ループ条件が評価されます。これは false であるため、ループは終了します。

于 2012-06-30T13:22:51.287 に答える