MAXScript では、exit 構文を使用して、ループ テスト式がまだ true であっても、for、do、while ループから早期に脱出できます。
これはループ テスト式を単純化する場合に役立つことが多く、ループの本体 <expr> のエラーまたはその他の複雑な終了テストも引き続き使用できます。
構文を次に示します。
exit [ with <expr> ] 例:
while x < y do ( local delta = x - y if delta <= 0 then exit -- time to bail $foo.pos.x = compute_x (foo / delta) x += 0.1 )
オプションの with <expr> を使用すると、ループが早期に終了したときに必要なループ式の全体の値を指定することができます。
終了値を指定しない場合、ループは終了後に undefined 値を返します。
with <expr> を使用した for ... do ループの終了結果が、式の値になりました。
OK が返されます。with <expr> を使用して for ... collect ループを終了すると、終了時点までに収集された本体値の配列が結果として返されます。
パフォーマンスに関する警告
exit構文を使用したループの脱出が try/catch によって内部的に実装されていますが、これは非常に低速です。パフォーマンス上の理由から、3ds Max 6 では、オプションの
whileテストを for ループ に追加することをお勧めします。