次の方法で共有


つつ。。。End While ステートメント (Visual Basic)

特定の条件が Trueされている限り、一連のステートメントを実行します。

構文

While condition
    [ statements ]
    [ Continue While ]
    [ statements ]
    [ Exit While ]
    [ statements ]
End While

部品

任期 定義
condition 必須。 Boolean 表現。 conditionNothingされている場合、Visual Basic はそれをFalseとして扱います。
statements 任意。 Whileに続く 1 つ以上のステートメント。conditionTrueされるたびに実行されます。
Continue While 任意。 While ブロックの次のイテレーションに制御を転送します。
Exit While 任意。 While ブロックから制御を転送します。
End While 必須。 While ブロックの定義を終了します。

注釈

条件がTrue残っている限り、一連のステートメントを不定回数繰り返す場合は、While...End While構造体を使用します。 条件をテストする場所やテストする結果の柔軟性を高める場合は、 Do...Loop ステートメント。 ステートメントを一定回数繰り返す場合は、 For...通常、次のステートメント の方が適しています。

While キーワードは Do... でも使用されます。Loop ステートメントSkip While 句および Take While 句

conditionTrue場合、End While ステートメントが検出されるまで、すべてのstatementsが実行されます。 次に、 While ステートメントに制御が戻り、 condition が再びオンになります。 conditionがまだTrueされている場合は、プロセスが繰り返されます。 Falseされている場合は、End While ステートメントに続くステートメントに制御が渡されます。

Whileステートメントは、ループを開始する前に常に条件をチェックします。 ループは、条件が Trueしたまま続行されます。 最初にループに入ったときに conditionFalse 場合、1 回も実行されません。

conditionは通常、2 つの値の比較から得られますが、ブール型 (TrueまたはFalse) に評価される任意の式を指定できます。 この式には、 Booleanに変換された別のデータ型 (数値型など) の値を含めることができます。

Whileループを入れ子にするには、あるループを別のループ内に配置します。 また、さまざまな種類のコントロール構造を相互に入れ子にすることもできます。 詳細については、「ネストされたコントロール構造」を参照してください。

Exit While

Exit While ステートメントは、While ループを終了する別の方法を提供できます。 Exit While は、 End While ステートメントに続くステートメントに制御を直ちに転送します。

通常、何らかの条件が評価された後 (たとえば、If...Then...Else構造体) にExit Whileを使用します。 誤った値や終了要求など、反復を続ける必要がなくなったり不可能になる条件を検出した場合は、ループを終了できます。 無限ループを引き起こす可能性のある条件をテストする場合は、Exit Whileを使用できます。これは、非常に大きい回数または無限回数実行される可能性のあるループです。 その後、 Exit While を使用してループをエスケープできます。

While ループ内の任意の数のExit While ステートメントを配置できます。

入れ子になった While ループ内で使用すると、 Exit While は最も内側のループから次の上位レベルの入れ子に制御を転送します。

Continue While ステートメントは、制御をループの次のイテレーションに直ちに転送します。 詳細については、「 Continue ステートメント」を参照してください。

例 1

次の例では、 index 変数が 10 より大きくなるまで、ループ内のステートメントは引き続き実行されます。

Dim index As Integer = 0
While index <= 10
    Debug.Write(index.ToString & " ")
    index += 1
End While

Debug.WriteLine("")
' Output: 0 1 2 3 4 5 6 7 8 9 10 

例 2

次の例は、 Continue While ステートメントと Exit While ステートメントの使用方法を示しています。

Dim index As Integer = 0
While index < 100000
    index += 1

    ' If index is between 5 and 7, continue
    ' with the next iteration.
    If index >= 5 And index <= 8 Then
        Continue While
    End If

    ' Display the index.
    Debug.Write(index.ToString & " ")

    ' If index is 10, exit the loop.
    If index = 10 Then
        Exit While
    End If
End While

Debug.WriteLine("")
' Output: 1 2 3 4 9 10

例 3

次の例では、テキスト ファイル内のすべての行を読み取ります。 OpenText メソッドはファイルを開き、文字を読み取るStreamReaderを返します。 While条件では、StreamReaderPeek メソッドによって、ファイルに追加の文字が含まれているかどうかが決まります。

Private Sub ShowText(ByVal textFilePath As String)
    If System.IO.File.Exists(textFilePath) = False Then
        Debug.WriteLine("File Not Found: " & textFilePath)
    Else
        Dim sr As System.IO.StreamReader = System.IO.File.OpenText(textFilePath)

        While sr.Peek() >= 0
            Debug.WriteLine(sr.ReadLine())
        End While

        sr.Close()
    End If
End Sub

こちらも参照ください