方法: ループの次の反復処理にスキップする (Visual Basic)
Do ループ、For ループ、または While ループの現在の反復処理を完了している場合、Continue ステートメント (Visual Basic) を使用して、次の反復処理にすぐにスキップできます。
次の反復処理へのスキップ
For...Next ループの次の反復処理へスキップするには
通常の方法で、For...Next ループを記述します。
現在の反復処理を終了し、次の反復処理をすぐに続行する場所で、Continue For を使用します。
Public Function findLargestRatio(ByVal high() As Double, ByVal low() As Double) As Double Dim ratio As Double Dim largestRatio As Double = Double.MinValue For counter As Integer = 0 To low.GetUpperBound(0) If Math.Abs(low(counter)) < System.Double.Epsilon Then Continue For ratio = high(counter) / low(counter) If Double.IsInfinity(ratio) OrElse Double.IsNaN(ratio) Then Continue For If ratio > largestRatio Then largestRatio = ratio Next counter Return largestRatio End Function
入れ子になったループ内からのスキップ
互いに入れ子になっている Do ループ、For ループまたは While ループがある場合、次の反復処理が入れ子内のどのレベルにあっても、そこにすぐにスキップできます。 しかし、これはループが異なる種類である場合だけです。 たとえば、入れ子になった While ループなど、同じ種類のループの入れ子になっている場合は、Continue While によって、最も内側の While ループの次の反復処理にスキップします。
入れ子になった For ループ内から、Do ループの次の反復処理にスキップするには
通常の方法で、入れ子になったループを記述します。
内部 For ループの現在の反復処理を終了する場所で Continue Do を使用し、外側の Do ループの次の反復処理にスキップします。
Public Sub divideElements(ByRef matrix(,) As Double) Dim i As Integer = -1 Do Until i > matrix.GetUpperBound(0) i += 1 For j As Integer = 0 To matrix.GetUpperBound(1) If matrix(j, j) = 0 Then Continue Do matrix(i, j) /= matrix(j, j) Next j Loop End Sub
参照
処理手順
方法: 制御構造から制御を移す (Visual Basic)
方法: 複数のステートメントを繰り返し実行する (Visual Basic)
方法: コレクションまたは配列で、各要素の複数のステートメントを実行する (Visual Basic)
方法: ループのパフォーマンスを改善する (Visual Basic)
参照
While...End While ステートメント (Visual Basic)
Do...Loop ステートメント (Visual Basic)
For...Next ステートメント (Visual Basic)