入れ子
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の答えを表示する。
このようなプログラムを作ろう。