VB.Net For Each…Next、Exit、Continue ステートメントと例
各ループの VB.Net
VB.Net For Each はループ コマンドです。 コレクション内のすべての項目に対して一連のステートメントを繰り返す必要がある場合は、このステートメントを使用する必要があります。 これを使用して、コレクションまたは配列に含まれるすべての要素を操作できます。
VB.Net の構文 For Each… Next ステートメント
この VB.NET 各ステートメントは以下の構文をとります。
For Each item [ As data_type ] In group [ statement(s) ] [ Continue For ] [ statement(s) ] [ Exit For ] [ statement(s) ] Next [ item ]
ここでは、
- この
item
コレクションのすべての項目を反復処理するために使用される変数です。 for each ステートメントでは必須ですが、Next ステートメントではオプションです。 - この
data_type
は データ・タイプ 要素の。 品目が申告されていない場合は必須です。 - この
group
ステートメントが繰り返されるコレクションです。 それは必須です。 - この
statement(s)
はオプションです。 これは、グループ内のすべての項目に対して実行される XNUMX つ以上のステートメントを示します。 - この
Continue For
制御を For Each ループの先頭に移します。 オプションです。 - この
Exit For
制御を For Each ループの外に移します。 オプションです。 - この
Next
For Each ループの終了を示します。 それは必須です。
VB.Net で For Each ループを使用する方法
次の例は、VB.NetでFor Eachループを使用する方法を示しています。
ステップ1) 新しいコンソールアプリケーションを作成する
新しいコンソール アプリケーションを作成することから始めます。
ステップ2) 次のコードを使用してください
VB.NetのFor Eachループを学ぶには次のコードを使用してください。
Module Module1 Sub Main() Dim myArray() As Integer = {10, 3, 12, 23, 9} Dim item As Integer For Each item In myArray Console.WriteLine(item) Next Console.ReadKey() End Sub End Module
ステップ3) [スタート]ボタンをクリックします。
コードを実行するには、上部のバーの [開始] ボタンをクリックします。次の結果が得られます。
コードのスクリーンショットは次のとおりです。
コードの説明:
- Module1 という名前のモジュールを作成します。
- メインのサブプロシージャを開始します。
- 4 つの整数のセットを含む myArray という名前の配列を作成します。
- item という名前の整数変数を作成します。
- item 変数を使用して、myArray という名前の配列の項目を反復処理します。
- 上記のステートメントによって配列内で見つかった項目をコンソールに出力します。
- For Each ループの終わり。
- コンソール ウィンドウをしばらく一時停止し、ユーザーがウィンドウを閉じる操作を行うのを待ちます。
- メインのサブプロシージャの終了。
- モジュールの終わり。
VB.Net の入れ子になった For ループ
For Each ループは入れ子にすることができます。 これは、XNUMX つの For Each ループを別の For Each ループ内に配置すると発生します。 例を使用してこれを説明してみましょう。
ステップ1) 新しいコンソール アプリケーションを作成します。
ステップ2) 次のコードを使用します。
Module Module1 Sub Main() Dim nums() As Integer = {12, 23, 35} Dim names() As String = {"Guru99", "alice", "antony"} For Each n As Integer In nums For Each st As String In names Console.Write(n.ToString & st & " ") Next Next Console.ReadKey() End Sub End Module
ステップ3) コードを実行するには、上部のバーから [開始] ボタンをクリックします。次の出力が表示されます。
コードのスクリーンショットは次のとおりです。
コードの説明:
- Module1 という名前のモジュールを作成します。
- メインのサブプロシージャを開始します。
- 一連の整数を含む nums という名前の配列を作成します。
- 一連の名前を含む names という名前の配列を作成します。
- 変数 n を作成し、それを使用して nums という名前の配列に含まれる項目を反復処理します。 これは外側の For Each ループです。
- st という名前の変数を作成し、それを使用して、names という名前の配列に含まれる項目を反復処理します。 これは内部の For Each ループです。
- 2 つの配列の項目を結合します。nums 配列の各項目は、names 配列の各項目と結合されます。ToString 関数は、nums 配列から読み取った数値を文字列に変換するのに役立ちます。” ” は、各組み合わせの後にスペースを作成するのに役立ちます。結合は & (アンパサンド) を使用して実現されています。
- 内側の For Each ループの終わり。
- 外側の For Each ループの終わり。
- コンソール ウィンドウを一時停止し、ユーザーがコンソール ウィンドウを閉じる操作を行うのを待ちます。
- メインのサブプロシージャの終了。
- モジュールの終わり。
VB.Net Exit For および Continue For ステートメント
Exit For ステートメントを使用すると、実行は For Each … Next ループから抜け出し、制御が Next ステートメントの後のステートメントに移されます。
Continue For ステートメントを使用すると、制御はループの次の反復に移されます。 例を使用してこれを説明してみましょう。
ステップ1) 新しいコンソール アプリケーションを作成することから始めます。
ステップ2) 次のコードを使用します。
Module Module1 Sub Main() Dim nums() As Integer = {10, 12, 14, 17, 19, 23, 26, 31, 33, 37, 40, 48} For Each n As Integer In nums If n >= 17 And n <= 25 Then Continue For End If Console.Write(n.ToString & " ") If n = 37 Then Exit For End If Next Console.ReadKey() End Sub End Module
ステップ3) 上部のバーから [開始] ボタンをクリックしてコードを実行します。次の結果が得られます。
コードのスクリーンショットは次のとおりです。
コードの説明:
- module1 という名前のモジュールを作成します。
- メインのサブプロシージャを開始します。
- 一連の整数を含む nums という名前の配列を作成します。
- n という名前の変数を作成し、それを使用して配列 nums に含まれる要素を反復処理します。
- If…Then 条件を使用して変数 n の値を確認します。 値が 17 (17 を含む) ~ 25 (25 を含む) の間の場合、反復は配列内の次の項目にスキップします。
- 上記の値のスキップはここで行われます。 これはスキップを実行するために必要なステートメントです。 これは、スキップされた項目に対して For Each ループが実行されないことを意味します。
- If 条件を終了します。
- 配列から取得した値をコンソールに出力します。ToString 関数は、値を数値から文字列に変換するのに役立ちます。” ” は、出力される各値の後にスペースを作成します。
- If…Then 条件を使用して、値が 37 である場合の反復変数 n をチェックします。
- 上記の条件が true (値 n=37) の場合、For Each ループを終了します。 これは、配列項目の反復が停止することを意味します。
- 上記の If 条件の終了。
- For … Each ステートメントの終わり。
- コンソール ウィンドウを一時停止し、ユーザーがコンソール ウィンドウを閉じる操作を行うのを待ちます。
- メインのサブプロシージャの終了。
- モジュールの終わり。
まとめ
- For Each ステートメントは、コレクションまたは配列に含まれるすべての項目を反復するために使用されます。
- 開発中に、For Each ステートメントを Exit For および Continue For ステートメントと組み合わせて、反復の実行方法を制御できます。