JSプログラミング最初の一歩 JavaScript

入れ子

for文もif文と同じように入れ子にすることが出来ます。つまり、for文の中にfor文を書くことが出来るわけです。

for( i=1 ; i<=3 ; ++i )
{
	for( j=1 ; j<=3 ; ++j )
	{
		alert( "test " );
	}
}



for文を入れ子にするときには内側のfor文を必ずインデント(段付け)します。
このプログラムでは、"test"と何回表示されるでしょうか?
答えは9回です。このプログラムではfor文の中にfor文が書かれています。外側のfor文はiをカウンタにしています。内側のfor文はjをカウンタにしています。

外側のfor分は3回の繰り返しで内側のfor文でも3回の繰り返しです。
まず、内側を1回繰り返し、外側のカウンタ変数に1を足します。
3回を3回繰り返すので、3×3で9回になります。
もっとわかりやすく、iとjの値を表示してみましょう。

for( i=1 ; i<=3 ; ++i )
{
	for( j=1 ; j<=3 ; ++j )
	{
		alert( "iは" + i + " jは" + j + "<br>");
	}
}

このプログラムでは「iは1 jは1」のようにiとjの内容を表示し、<br>タグで改行しています。そうすると最初にiが1のときにjが1~3まで変化し、次にiが2になってまたjが1~3まで変化し、最後にiが3になってjが1~3まで変化するということがわかります。

      iの値 jの値
1回目   1     1
2回目   1     2
3回目   1     3
4回目   2     1
5回目   2     2
6回目   2     3
7回目   3     1
8回目   3     2
9回目   3     3

このようにfor文の中にfor文を書くことを二重ループといいます。もちろん、二重以上に三重、四重にすることも可能です。

問題7-8
まず 2×2、2×3、2×4の答えを表示する。
次に 3×2、3×3、3×4の答えを表示する。
最後に4×2、4×3、4×4の答えを表示する。
このようなプログラムを作ろう。