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 ループ に追加することをお勧めします。