For Each...Next ステートメントは、一覧に指定された要素に繰り返します。
For Each ステートメントは以下を指定します。
次の構文が For Each...Next ステートメントに適用されます。
For Each <LoopControlVariable> In <expression> [statements] Next [expression]
識別子でループ コントロール変数を指定します。列挙子式は、一覧または列挙子関数と評価される必要があります(下記の TreeIterator を参照)。ループ コントロール変数は、一覧内の項目と対応するタイプである必要があります。ネストされた For Each...Next ステートメントは、それぞれ独自のループ コントロール変数を使用する必要があります。
列挙子式はループの開始前に評価されます。各反復の開始時に、一覧内の次の要素がループ コントロール変数に割り当てられます。一覧内のすべての要素が評価されるとループが終了します。そうでない場合は、ステートメント ブロックが実行されます。
典型的な For Each...Next ループの例を以下に示します。
Rule total As Integer Dim counter As Integer = 0 Dim numList As list = {0, 2, 4, 6, 8, 10} For Each counter in numList total = total + counter printValue("Total = " + stringValue(total) + _ " Counter = " + stringValue(counter)) Next End Rule Output: "Total = 0 Counter = 0" "Total = 2 Counter = 2" "Total = 6 Counter = 4" "Total = 12 Counter = 6" "Total = 20 Counter = 8" "Total = 30 Counter = 10"
ループのボディで Exit For ステートメントを使用することで、For Each...Next ループを終了することができます。