2重でも3重でも内側に書ける
繰返し制御文 |
---|
For Next |
For Next 入れ子 |
For Step Next |
For Each Next |
Exit For 強制終了 |
Do While Loop |
Do Until Loop |
Do Loop While |
Do Loop Until |
Exit Do 強制終了 |
For Next は、For Next の内側にさらに、For Next を使って何重でも内側に書くことができます。
3重ループ以上の多重ループを使うときは、ループ内のプログラムが長くならないようにします。長くなると、最後までプログラムを見るのが面倒になります。
また、ループが深くなりすぎると、プログラムが複雑になり、間違い(バグという)の元になります。プログラムは後から機能追加で修正したりするので、分かりやすいプログラムを書くことが大事です。
' 外側ループ For i As Integer = .. To .. .......... ................ ' 内側ループ For j As Integer = .. To .. ............... ............ ' さらに内側ループ For k As Integer = .. To .. ............... Next ...................... Next Next
九九を表示するサンプルプログラム
For Next の2重ループを使って、掛け算の九九の結果を表示するプログラムを作成します。
Console.Writeは、同じ行に続けて表示したいときに使います。Console.WriteLineと違って、改行しません。
ソースリストの枠内をクリックすると全選択できます。
Module Module1 Sub Main() ' 九九表のタイトル表示 Console.WriteLine("*** 九九表 ***") Console.WriteLine() ' 改行 Console.Write(" ") ' 調整用空白 For i As Integer = 1 To 9 Console.Write(" X" & i) Next Console.WriteLine() ' 改行 ' 九九を二重ループを使って計算 For j As Integer = 1 To 9 Console.Write(j & "のだん --> ") For k As Integer = 1 To 9 ' 九九計算と表示 Console.Write("{0,3:#0}", j * k) Next ' 各段終了時に改行 Console.WriteLine() Next End Sub End Module
Console.Write(("{0,3:#0}"), i * j)の {0,3:d} は、書式指定文字列と呼ばれ、演算結果をいろいろ形式で表示するために使います。
{0,3:d}は、1番のデータ i * j を、3桁右詰の10進数で表示(1桁や2桁のときは、残りは空白)します。
書式指定文字列についてはこちらからどうぞ
実行結果は次の画面のようになります。
次回は、For Each Next についてに勉強します。
次回:For Each Next |
---|