アラートの結果は13であり、どのプロセスがそれを取得したのかわかりません。私はループが何を意味し、+ =何を意味するのかを理解していますが、それらの接続や2番目のループが結果にどのような影響を与えるかはわかりません。アラート結果を含むネストされたforループのプロセスの理解
var v=1;
for(i=1;i<5;i++)
for(j=2;j<5;j++)
v+=1;
alert(v);
アラートの結果は13であり、どのプロセスがそれを取得したのかわかりません。私はループが何を意味し、+ =何を意味するのかを理解していますが、それらの接続や2番目のループが結果にどのような影響を与えるかはわかりません。アラート結果を含むネストされたforループのプロセスの理解
var v=1;
for(i=1;i<5;i++)
for(j=2;j<5;j++)
v+=1;
alert(v);
最初のループは4回実行されます(フォーム1〜4)。 2番目のループは3回(2〜4回)実行されます。したがって、内部命令は4 * 3 = 12回実行され、12のインクリメント(+ = 1)が実行されます。初期値は1だったので、(1 + 12)は13になります。
これは実際にはどの言語でも表示される非常に単純な問題です。
コードの最初の行で、値を保持するためにメモリ内に少しの場所を置いておく "v"を宣言します。
v=1
と言うとき、その小さなスポットに値「1」を保存します。
あなたはv+=1
あなたはそれに1を追加し、メモリのその小さなスポットに結果を入れて、メモリのその小さなスポットから値を取得する」言っていると言うとき。
をあなたがして、二つのループを持っていますあなたが* 3 4で終わる(下記参照...)v+=1
の実行そして、あなたは1とを開始いるので、あなたの結果は、計算(4 * 3) - 内部ループはi
変更することを一度するたびに実行されます+ 1
私はどのように「4 * 3」の実行を得ましたか?内側のループは2の値で始まり5の値になります。5-2 = 3。これが3です。外部ループは1から始まり5で終了します。 5-1 = 4
最初のループは4回(i = 1,2,3,4)実行され、それらのループごとに2回目のループは3回実行されます(j = 2,3,4)。したがって、2番目のループは合計12回実行されるため、vは1から始まり12回増分されます。 – Nick