For Next 多重ループ サンプル [VB]

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