LOTUSSCRIPT 言語
構文は次の通りです。
Exit exitType
exitType は、キーワード Do、For、ForAll、Function、Sub、Property のいずれかである必要があります。
Do、For、ForAll ステートメントで Exit を使用する場合、ブロックステートメントの最後の後に続く最初のステートメントから実行が続行されます。
以下に例を示します。
' Compute the elapsed time to execute 1000 iterations ' of a simple Do loop. ' Time may vary, depending on the workstation. Dim doCount As Integer, startTime As Single startTime!= Timer() doCount% = 0 Do ' Increment doCount% through 1000 iterations of the Do loop. doCount% = doCount% + 1 If doCount% > 1000 Then Exit Do Loop ' Come here upon exit from the Do loop. Print Timer() - startTime!"seconds for 1000 iterations" ' Output: ' .109375 seconds for 1000 iterations
プロシージャで Exit を使用する場合、プロシージャから正常に戻った場合と同様に実行が続行されます。
次の例は、サブルーチン内に前述の例の Do ステートメントを取り入れています。Exit Sub ステートメントは、doCount% が 1000 に達した後、サブルーチン ElapsedTime の実行を終了します。サブルーチン呼び出しの後の Print ステートメントから実行が続行されます。Do ループの実行を別に終了する必要はありません。Exit Sub ステートメントによって Do ループからサブルーチンの外に制御が移されます。
' Compute the elapsed time to execute a sub that runs ' 1000 iterations of a simple Do loop. Public startTime As Single Sub ElapsedTime Dim doCount As Integer doCount% = 0 Do doCount% = doCount% + 1 If doCount% >= 1000 Then Exit Sub Loop ' Because of the Exit Sub statement above, this Print statement ' will not be reached. Print Timer() - startTime!, "seconds to run 1000 iterations" End Sub startTime!= Timer() Call ElapsedTime() Print Timer() - startTime!_ |seconds for sub call to run 1000 iterations| ' Output: ' .109375 seconds for sub call to run 1000 iterations
Exit For ステートメントが実行された後で実行が続行される場合、For ステートメントのカウント変数は最新の値になります。これは、For ステートメントの通常の終了後に実行が続行される場合と同じです。Exit ForAll ステートメントが実行された後で実行が続行される場合、ForAll 別名変数は未定義です。これは、ForAll ステートメントの通常の終了後に実行が続行される場合と同じです。
Exit Function ステートメントの実行の後、関数は呼び出し元に値を返します。通常に戻る場合と同様、これは終了前に割り当てられた最後の値です。値が割り当てられなかった場合、関数の戻り値はその初期化された値 (0、EMPTY、空の文字列 ("")、NOTHING のいずれか) になります。以下に例を示します。
Function TwoVerge(seqSeed As Integer) As Single ' Leave if the call argument is not a positive integer. ' The return value of TwoVerge is its initial value, 0. If seqSeed% < 1 Then Exit Function TwoVerge!= Sqr(seqSeed% + 1) Dim i As Integer For i% = 1 To seqSeed% ' TwoVerge computes and returns a value that must be ' 1 or greater, according to the following formula. TwoVerge!= Sqr(1 + (seqSeed% + 1 - i%) * TwoVerge!) Next i% End Function
Print ステートメント内の TwoVerge への呼び出しは、結果を次のように示します。
Print "Seed:", -1, "Value:"TwoVerge(-1) Print "Seed:", 20, "Value:"TwoVerge(20) ' Output: ' Seed:-1 Value:0 ' Seed:20 Value: 1.999998
関連項目