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文との違いは、数値の設定がありません。
関連の記事