ループ終了

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 ループを終了すると、ループの結果を示す式の値が返されます。

3ds Max 6 以前のリリースでは、 OK が返されます。

   

with <expr> を使用して for ... collect ループを終了すると、終了時点までに収集された本体値の配列が結果として返されます。

パフォーマンスに関する警告:

exit 構文を使用したループの脱出が try/catch によって内部的に実装されていますが、これは非常に低速です。

パフォーマンス上の理由から、3ds Max 6 では、オプションの while テストを for ループ に追加することをお勧めします。

関連事項