Exit ステートメント

ループ、Select...Case ステートメントまたは Try...Catch ステートメント、ならびに関数、メソッドまたはルールの外にジャンプするには、Exit ステートメントを使用します。Exit ステートメントは、ステートメントで指定されたタイプのブロック内に記述されている必要があります。Exit For は For ループ内で使用する必要があり、Exit While は while ループ内で使用する必要があるなどです。

次の例では、ロード パラメータの値が範囲の値を超えた場合に、While ループを終了してコントロールを End While ステートメントに渡します。

Parameter Rule unitWeight As Integer = 5

Rule load As Number
   Dim counter As Integer = 1
   Dim limit As Number = 25.0
   While counter <= 10
      load = load + unitWeight
      If load > limit Then
         printValue("Warning: “ + stringValue(limit) + "kg limit exceeded!")
         Exit While
      End If
      counter = counter + 1
   End While
End Rule

同様の手法は、Do や For ループ構文を終了するのに使用されます。

‘Exit from a Do loop.
Exit Do

‘Exit from a For loop.
Exit For

Exit ステートメントは Select...Case ステートメントからエスケープするため使用することができます。下の例では、Select...Case ステートメントは、選択式が最初の case 句内の 1 つの値と等しい場合に終了します。

Select nTeeth
   ‘exit if number is within range, 18-25
   Case 18, 21, 25
      Exit Select
   Case 15
      description = "15 Tooth Sprocket (custom)"
      printValue("description = 15 Tooth Sprocket (custom)")
   Case 28
      description = "28 Tooth Sprocket (custom)"
      printValue("description = 28 Tooth Sprocket (custom)")
   Case Else
      description = "out of range"
      printValue("description = Invalid value. " + stringValue(nTeeth) _
         + " teeth - " + description)
End Select

Exit ステートメントは Try...Catch ステートメントから終了するためにも使用することができます。Exit Try は任意の句(Try、Catch、Finally)で許可されます。Finally ブロックが存在する場合は、Try または Catch 句に Exit Try ステートメントがあるかどうかにかかわらず実行されます。

Try
   If x < 4 Then
      Exit Try
   Else
      Error
   End If
Catch Error
   printValue("Value exceeds limit.")
Finally
   printValue("x = " + stringValue(x))
End Try

Exit ステートメントは、メソッド、関数、またはルールのボディ内で使用され、式呼び出しへの戻り値をコントロールします。

戻り値は Exit が発生する時点で既に設定されている必要があり、それ以外の場合はエラーが生成されます。

‘Exit from a function.
Exit Function

‘Exit from a method.
Exit Method

‘Exit from a rule.
Exit Rule