【VB.NET】For Each Next ループの使い方

VB.NET
この記事は約3分で読めます。

概要

For Each文は、ループ処理をしたい時に使う「構文」の1つで、「For Each文」でループ処理を作る最大のメリットは、「ループ回数を直接指定しなくても良い点」です。

3回、5回など指定しなくても、「複数の値が入っている親要素」を指定すれば、要素の数だけループ処理が実行されます。

もっと言えば、ループ回数が指定出来ない場合に使うのが「For Each文」です。

基本構文
For Each 取出した要素の変数名 As 取出した要素の型名 In 複数の値が入った変数
    'ここに処理を書く
Next

 

内容

ループ回数や条件を指定しなくてもループ処理されます。

サンプルコード

Module Module1
    Sub Main()

        'リストの宣言 + 初期値セット
        Dim fruits = New List(Of String)(New String() {"りんご",
                                                       "みかん",
                                                       "イチゴ"})

        For Each st As String In fruits
            Console.WriteLine(st)
            '出力
            'りんご
            'みかん
            'イチゴ
        Next

    End Sub

End Module

 

注意点

「For Each文」でループが始まるとコレクションクラスは、要素の追加や削除を一切受け付けなくなります。
下記のサンプルコードは、コンパイルは通りますが、実行時にエラーになります。

サンプルコード

Module Module1
    Sub Main()

        'リストの宣言 + 初期値セット
        Dim fruits = New List(Of String)(New String() {"りんご",
                                                       "みかん",
                                                       "イチゴ"})

        For Each st As String In fruits
            fruits.Add("バナナ") 'System.InvalidOperationException:
            'コレクションが変更されました。列挙操作は実行されない可能性があります。

            fruits.Remove("りんご") 'System.InvalidOperationException:
            'コレクションが変更されました。列挙操作は実行されない可能性があります。

            fruits.Remove("バナナ") 'リスト内にバナナがないのでセーフ

        Next

    End Sub

End Module

 

コメント

タイトルとURLをコピーしました