2017-10-24 6 views
-3

アラートの結果は13であり、どのプロセスがそれを取得したのかわかりません。私はループが何を意味し、+ =何を意味するのかを理解していますが、それらの接続や2番目のループが結果にどのような影響を与えるかはわかりません。アラート結果を含むネストされたforループのプロセスの理解

var v=1; 

for(i=1;i<5;i++) 
    for(j=2;j<5;j++) 
    v+=1; 

alert(v); 
+1

最初のループは4回(i = 1,2,3,4)実行され、それらのループごとに2回目のループは3回実行されます(j = 2,3,4)。したがって、2番目のループは合計12回実行されるため、vは1から始まり12回増分されます。 – Nick

答えて

1

最初のループは4回実行されます(フォーム1〜4)。 2番目のループは3回(2〜4回)実行されます。したがって、内部命令は4 * 3 = 12回実行され、12のインクリメント(+ = 1)が実行されます。初期値は1だったので、(1 + 12)は13になります。

1

これは実際にはどの言語でも表示される非常に単純な問題です。

コードの最初の行で、値を保持するためにメモリ内に少しの場所を置いておく "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

+0

すばらしい説明! OPは私ではありません:Pそれはボビーです – dhilt

+0

おっと...申し訳ありません:)私はあなたの編集のためのタグを見たに違いないと思って、元の投稿をしたと思った! – theGleep

関連する問題