ループ、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