VBSプログラミング最初の一歩 VBScript

入れ子

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

for i=1 to 3
	for j= 1 to 3
		MsgBox "test"
	next
next



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 to 3
	for j= 1 to 3
		MsgBox "iは" & i & " jは" & j 
	next
next

このプログラムではMsgBox命令で「iは1 jは1」のようにiとjの内容を表示します。そうすると最初に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の答えを表示する。
このようなプログラムを作ろう。