1

私は実際にはJavaScriptの初心者で、基本を学ぶためにコードアカデミーのレッスンを受け始めました。

var i;
for (i = 1; i <= 40; i++) {
  console.log("i is now equal to " + i);
}

これが私の質問です-このコードでは、いつi <= 40、41まで印刷する必要がありますか? 条件がfor満たされるまでループが実行され続けるため、40 までしか印刷されないのはなぜですか?i <= 40true

すなわち

40で実行すると、1回インクリメントすることで41まで印刷されますよね?では、なぜ 40 までしか印刷されないのでしょうか。

誰かがコードが正確に何をしているのか、各行が何を意味し、何をしているのかを説明してくれたら、本当に感謝しています. ありがとう。

4

5 に答える 5

2

i=1は初期化子なので、の最初の値iは 1 です。

初期化後、各反復で先頭に戻りi、条件に対してチェックされますi<=40。反復が完了するたびに、インクリメントが実行されi++ます。40 回目の反復では、i=40 となり、条件に合格してログが出力されます。次に (以前のすべての反復と同様に)が呼び出され、 41 までi++ノッチします。これはテストに失敗するため、ループはコード ブロックを再度実行しません。ii<=40

その結果、コンソールは 1 から 40 を出力し、終了しi=41ます。

于 2012-04-13T15:20:12.497 に答える
1

それは次のように言います

var i; // DECLARE A NEW VARIABLE NAMED i

// set i to 1 and do things while i is less than or equal to 40
// after this block of code has executed increase the counter by 1

for (i = 1; i <= 40; i++) {     
  console.log("i is now equal to " + i);  // print "i is now equal to <the value of i>"
}

これは、最初に数値 1 を出力し、ループが終了する時点で i が 41 になるまで毎回 1 ずつインクリメントすることを意味します (ただし、{41 が出力されないことを意味します。 )

あなたが次のように書いていたら

for (i = 0; i <= 40; i++) {     
  console.log("i is now equal to " + i);  // print "i is now equal to <the value of i>"
}

カウントが0から始まり、もう1回繰り返されることを除いて違いはありませんが、iが41に等しくなったときに終了しますが、それでも41は出力されません

ループの外で別のログ ステートメントを実行すると、i が 41 に等しいことがわかりますが、この値はループの本体では使用されませんでした (中括弧内のビット)。

于 2012-04-13T15:15:38.597 に答える
1

ループが最後に実行されるのiは 40 で、41 に達すると、ループから抜け出します。i++ステートメントは、ループ ステートメントの後に実行されます。

var i;
for (i = 1; i <= 40; i++) {
  console.log("i is now equal to " + i);
}

console.log("i is now equal to " + i); // Now it's 41

これがforループの仕組みです

for ( var i= 0; /* initializer */; 
     i < 40; /* check whether it should run, before running loop statements */ 
     i++ /* happens after the loop statements */ )
于 2012-04-13T15:17:59.013 に答える
0

i = 41条件ステートメント ( i <= 40) がチェックされて返されるとfalse、ループはその内容の実行を停止します。

于 2012-04-13T15:17:37.377 に答える
0

あなたの場合、i <= 40の条件は、forループ内でコードを実行する前にチェックされます。したがって、i が 41 になると、i <= 40 は false と評価されるため、ブロックは実行されず、41 は出力されません。

また、インクリメント (i++) は条件の前に発生します。

于 2012-04-13T15:19:19.380 に答える