方法 : ループの次の反復処理にスキップする
更新 : 2007 年 11 月
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
参照
処理手順
方法 : コレクションまたは配列で、各要素の複数のステートメントを実行する
概念
参照
While...End While ステートメント (Visual Basic)
Do...Loop ステートメント (Visual Basic)
For...Next ステートメント (Visual Basic)