この質問のきっかけとなったのは、js プログラムの実行結果です:
var i = 0;
関数 a(){
for(i=0;i}
}
関数 b(){
for (i=0;ia();
return i;
}
var Result =
このプログラムの実行結果は Result = 21;
このプログラムから、関数 a が返されたときの i の値は 20 であることがわかりますが、これは問題ありません。
b 関数が戻るとき、i の値が 20 か 21 かは議論の価値があります。
問題の本質は、i を先に判断するのか、i
実行結果によれば、i であることがわかります。最初に処刑されました。
function a(){
for (i= 0;i// var i はありません
// ここの i は誰もがアクセスできるグローバル変数です
}
}
関数b(){
for(i=0;i//alert(i);//同様に、ここの i もグローバル変数で、0 を 1 回だけ返します
a();// この関数の戻り値は i=20 です
// i=20 が i を通過し、次に i=21 を通過する場合、i}
return i;
}
var Result = b();
ここで for ループの実行シーケンスを完了します。プログラム たとえば、
for(int i= 0;i{
}
最初に i=0;i を実行します。 : i ,i= 10 になるまでループ本体
の 2 番目のラウンドを実行し、その時点でループが終了します。
つまり、
ステートメント 1 は、ループ (コード ブロック) が開始される前に実行されます。
ステートメント 2 は、ループ (コード ブロック) を実行するための条件を定義します。 >
ステートメント 3 は、ループ (コードのブロック) が実行された後に実行されます。