Break()とContinue()を使うと、ループをさらに制御することができます。Break()は、ループを直ちに中断し、ループの後に続く式を実行します。Continue()は、Break()を少し柔和にしたもので、現在のループの反復を直ちに中断し、次の反復を続行します。
Break()は通常、条件文の中で使用します。たとえば、次のような手順で要約できます。
For( i = 1, i <= 5, i++,
If( i == 3, Break() );
Print( "i=" || Char( i ) );
);
の結果は、次のようになります。
"i=1"
"i=2"
このスクリプトは次のように機能します。
For( |
For()ループを開始する。 |
i = 1, |
iを1に設定する。 |
i <= 5, |
iが5以下である限りループの評価を繰り返す。 |
i++, |
iを1だけ増やす。このステップはIFループの評価後に実行されます。 |
If( |
If()ループを開始する。 |
i == 3, Break() |
iが3に等しい場合、ループを中断する。 |
); |
ループを終了する。 |
Print( |
iが3に等しくない場合、Print()ループを開く。 |
"i=" |
文字列"i="をログに出力する。 |
|| |
後続の値を、"i="と同じ行に出力する。 |
Char(i)); |
iの値をログに出力する。 For()ループはiの値が5以下の間は繰り返すようになっていますが、iが3に等しい場合は中断してループから抜けるため、iが3より小さい場合のみ値を出力します。 |
); |
ループを終了する。 |
Printの後にIf()式とBreak()式が続く場合、"i=3"が出力された後にループが中断するので、1~3のiの値が出力されることになります。
"i=1"
"i=2"
"i=3"
Continue()も、Break()と同様に条件式の中で使用されます。たとえば、次のような手順で要約できます。
For( i = 1, i <= 5, i++,
If( i < 3, Continue() );
Print( "i=" || Char( i ) );
);
の結果は、次のようになります。
"i=3"
"i=4"
"i=5"
このスクリプトは次のように機能します。
For( |
For()ループを開始する。 |
i = 1, |
iを1に設定する。 |
i <= 5, |
1が5以下であると評価する。 |
i++, |
iを1だけ増やす。このステップはIFループの評価後に実行されます。 |
If( |
If()ループを開始する。 |
i < 3, Continue() |
iを1と評価し、iが3より小さい限り続行する。 |
); |
If()ループを終了する。 |
Print( |
iが3以上になったら、Print()ループを開く。 |
"i=" |
文字列"i="をログに出力する。 |
|| |
後続の値を、"i="と同じ行に出力する。 |
Char(i)); |
iの値をログに出力する。 その後、iの値が5以下の間はFor()ループを繰り返し、iが3以上の場合は続行して出力します。 |
); |
ループを終了する。 |