[VB.net]for文ではcontinueが使えない!do-whileやforeachも

アイキャッチVB.net
広告

プログラミングでは、繰り返し処理を制御するために

ContinueやBreakなどのキーワードが利用されます。

今回は、VB.netのFor文でこれらをどのように使用するかについて解説します。

広告

for文ではcontinueが使えない

Continueは、For文内で処理をスキップして次の繰り返しに進むためのキーワードです。

以下はその書き方です。

For i As Integer = 1 To 10
    If i = 5 Then
        Continue For
    End If

    ' Continueが実行された場合、この部分はスキップされます。

    Console.WriteLine(i)
Next

この例では、iが5のとき、Continue Forが実行されています。

そのため、Console.WriteLine(i)がスキップされ、5以外の値が表示されます。

for文で途中で止める

Breakは、For文内で処理を中断してループを終了するためのキーワードです。

以下はその書き方です。

For i As Integer = 1 To 10
    If i = 5 Then
        Exit For
    End If

    ' Breakが実行された場合、この部分でループが終了します。

    Console.WriteLine(i)
Next

この例では、iが5のとき、Exit Forが実行されています。

そのため、5より大きい値は表示されず、ループが終了します。

広告

for-each文で途中で止める

Dim numbers() As Integer = {1, 2, 3, 4, 5}

For Each num As Integer In numbers
    If num = 3 Then
        Exit For
    End If

    ' Exitが実行された場合、ここでループが終了します。

    Console.WriteLine(num)
Next

上記の例では、numが3のとき、Exit Forが実行されています。

そのため、3より後の要素は表示されません。

for-each文で次へスキップ

Dim numbers() As Integer = {1, 2, 3, 4, 5}

For Each num As Integer In numbers
    If num = 3 Then
        Continue For
    End If

    ' Continueが実行された場合、ここでの処理はスキップされます。

    Console.WriteLine(num)
Next

上記の例では、numが3のとき、Continue Forが実行されています。

そのため、3は表示されず、スキップされています。

広告

do-while文で途中で止める

Dim i As Integer = 1

Do While i <= 5
    If i = 3 Then
        Exit Do
    End If

    ' Exitが実行された場合、ここでループが終了します。

    Console.WriteLine(i)
    i += 1
Loop

上記の例では、iが3のとき、Exit Doが実行されています。

そのため、3より後の処理は実行されません。

広告

do-while文で次へスキップ

Do While文ではContinueが直接サポートされていないため、

While文とExit Doを組み合わせてスキップの効果を得ます。

Dim i As Integer = 1

Do While i <= 5
    If i = 3 Then
        i += 1
        Continue Do
    End If

    ' Continueが実行された場合、ここでの処理はスキップされます。

    Console.WriteLine(i)
    i += 1
Loop

上記の例では、iが3のとき、Continue Doが実行されています。

そのため、3は表示されず、スキップされています。

まとめ

まとめ

ContinueとBreakは、For文内で処理の流れを制御するための重要なキーワードです。

Continueは特定の条件の場合に処理をスキップし、Breakは条件に合致した場合にループを終了させます。

適切に使用することで、より柔軟かつ効果的なプログラミングが可能となります。

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