VB.NET For文 処理を繰り返す(Exit/Continue)

VB.NETのFor文で処理を繰り返すサンプルです。

目次

サンプル For文とは / For文のサンプル / For文で配列の値を取得 / Step(増減値)
ループを抜ける(Exit For) / 2重ループでExit Forを使用
ループの先頭に戻る(Continue For) / 2重ループでContinue Forを使用
For Each文で配列の値を取得する

For文とは

For 変数 = 開始値 To 終了値  [Step 増減値]
    実行される処理
Next [変数]
  • 処理を繰り返す時に使用します。最初にforを書くのでfor文と呼ばれます。繰り返しはループとも呼ばれます。
  • 変数が開始値から終了値の範囲内の間、繰り返します。
  • 「Step 増減値」を省略した場合は、増減値=1になります。マイナス値の指定も可能です。
  • ループで使用する変数をカウンター変数またはループ変数といいます。
  • 以下は、MicrosoftのFor...Next ステートメントのリンクです。
    https://docs.microsoft.com/ja-jp/dotnet/visual-basic/language-reference/statements/for-next-statement

For文のサンプル

Module Module1
	Sub Main()
		For i = 0 To 5
			Console.WriteLine(i) ' 0 1 2 3 4 5 が出力される
		Next i
	End Sub
End Module

3行目は、0から5までの処理を繰り返します。

For文で配列の値を取得

Module Module1
	Sub Main()
		Dim color() As String = {"赤", "黄", "青"} '配列

		For i = 0 To UBound(color)
			Console.WriteLine(color(i)) '赤 黄 青が出力される
		Next i
	End Sub
End Module

3行目は、配列です。
5行目のUBoundは、配列の添字の最大値を返します。この場合は2を返します。
6行目は、変数と添字で配列の値を表示しています。

Step(増減値)

Stepで増減値を指定できます。

Module Module1
	Sub Main()

		For i = 1 To 10 Step 2
			Console.Write(i)  '1 3 5 7 9が出力される
		Next i

		For i = 10 To 1 Step -2
			Console.Write(i) '10 8 6 4 2が出力される
		Next i
	End Sub
End Module

4行目は、Step 2なのでループ変数の値が2つずつ増加します。
8行目は、Step-2なのでループ変数の値が2つずつ減少します。

ループを抜ける(Exit For)

Module Module1
    Sub Main()
        Dim i As Integer '変数

        For i = 0 To 5
            If i = 3 Then
                Exit For
            End If
            Console.Write(i) ' 0 1 2が出力される
        Next i

    End Sub
End Module

7行目のExit Forでfor文を抜けます。
9行目は、0,1,2が出力されます。

2重ループでExit Forを使用

内側のFor文を抜けます。

Module Module1
    Sub Main()
        Dim i, j As Integer '変数

        For i = 0 To 2
            For j = 0 To 2
                If j = 0 Then
                    Exit For
                End If
                Console.Write("j=" & j) '出力なし
            Next j
            Console.Write("i=" & i) 'i=0 i=1 i=2が出力される
        Next i

    End Sub
End Module

5,6行目にfor文があり2重ループ(入れ子)になっています。
8行目のExit Forは、内側のfor文のみ抜けます。

ループの先頭に戻る(Continue For)

Module Module1
    Sub Main()
        Dim i As Integer '変数

        For i = 0 To 2
            If i = 1 Then
                Continue For
            End If
            Console.Write(i) '0 2が出力される
        Next i

    End Sub
End Module

7行目のContinue Forでループ処理の先頭の5行目に戻ります。
9行目は、0と2が出力されます。

2重ループでContinue Forを使用

内側のFor文の先頭に戻ります。

Module Module1
    Sub Main()
        Dim i, j As Integer '変数

        For i = 0 To 1
            For j = 0 To 1
                If j = 0 Then
                    Continue For
                End If
                Console.Write("j=" & j) 'j=1 j=1が出力される
            Next j
            Console.Write("i=" & i) 'i=0 i=1が出力される
        Next i

    End Sub
End Module

5,6行目にfor文があり2重ループ(入れ子)になっています。
8行目のContinue Forは、内側のfor文の先頭の6行目に戻ります。

For Each文で配列の値を取得する

For Each ( 変数1 in 変数2 ){
  実行される処理(変数1を使用する)
}
  • 上記for文との違いは、変数の値を加算する処理がありません。
  • 配列やリストの要素を順番にアクセスします。
Module Module1
    Sub Main()
        Dim a() As String = {"赤", "黄", "青"} '配列

        For Each b As String In a
            Console.WriteLine(b) '赤 黄 青が出力される
        Next
    End Sub
End Module

5行目は、For Each文です。上記For文との違いは、数値の設定がありません。

関連の記事

(ASP.NETとVB.NET) MVCでhello worldを表示する
VB.NET If文のサンプル

△上に戻る