Max Script 基本文法:グループ・繰り返しの処理
掲載日:2020/7/18
ループ
ヘルプ
[HELP] MAXScript 言語リファレンス > プログラム フロー制御 > For ループ
[HELP] MAXScript に関する質問と回答 > 高速で優れたスクリプトの作成 > 処理速度を上げる方法 > for ... collect と for ... do のパフォーマンスの比較
[HELP] MAXScript に関する質問と回答 > 高速で優れたスクリプトの作成 > 処理速度を上げる方法 > for ... collect と for ... do のパフォーマンスの比較
基本
ループ処理で使われる主な構文は下記のものがあります。
・for … to … do
・for … to … by … do
・for … in … do
・while … do
・do … while
・exit
・for … to … do
・for … to … by … do
・for … in … do
・while … do
・do … while
・exit
for … to … do
解説とメモ
to で指定した条件を満たすあいだ処理を実行します。
自動的に1ずつ加算しながらループします。(※for … to … by … do のbyを省略した書き方です)
自動的に1ずつ加算しながらループします。(※for … to … by … do のbyを省略した書き方です)
基本的な書式
for [初期値] to [ループ終了となる条件式] do (
[処理内容]
)
[処理内容]
)
Max Scriptのサンプル
$Box001から$Box005まで選択する処理の例。
( clearSelection() local objlist = #($Box001,$Box002,$Box003,$Box004,$Box005,$Box006) for i=1 to i=5 do ( selectMore objlist[i] ) )
for … to … by … do
解説とメモ
増分を指定できるループ処理です。
by 2 と書くとループしながら自動的に2ずつ加算されます。
by を指定しなかった場合、自動的に1ずつ加算されます。
by 2 と書くとループしながら自動的に2ずつ加算されます。
by を指定しなかった場合、自動的に1ずつ加算されます。
基本的な書式
for [初期値] to [ループ終了となる条件式] by [ループするごとに加算する値] do (
[処理内容]
)
[処理内容]
)
Max Scriptのサンプル
1つおきに選択($Box001,$Box003,$Box005を選択)する処理の例。
( clearSelection() local objlist = #($Box001,$Box002,$Box003,$Box004,$Box005,$Box006) for i=1 to i=6 by 2 do ( selectMore objlist[i] ) )
for … in … do
解説とメモ
配列に含まれているすべてに対して処理を行います。
基本的な書式
for [配列から取り出した値を格納する変数] in [配列名] do (
[処理内容]
)
[処理内容]
)
Max Scriptのサンプル
$Box001から$Box006まですべて選択する例。
( clearSelection() local objlist = #($Box001,$Box002,$Box003,$Box004,$Box005,$Box006) for obj in objlist do ( selectMore obj ) )
while … do
ヘルプ
[HELP]MAXScript 言語リファレンス > プログラム フロー制御 > While ループと Do ループ
解説とメモ
while で指定した条件を満たすあいだ処理を行います。
基本的な書式
while [条件式] do (
[処理内容]
)
[処理内容]
)
Max Scriptのサンプル
$Box006から$Box001まで選択するスクリプトの例。
( clearSelection() local objlist = #($Box001,$Box002,$Box003,$Box004,$Box005,$Box006) i = 6 while i > 1 do ( selectMore objlist i = i - 1 ) )
do … while
ヘルプ
[HELP]MAXScript 言語リファレンス > プログラム フロー制御 > While ループと Do ループ
解説とメモ
whileで指定した条件を満たすあいだ処理を行います。条件判定が最後にあるため、必ず1回は処理が行われます。
基本的な書式
do (
[処理内容]
)
while [条件式]
[処理内容]
)
while [条件式]
Max Scriptのサンプル
$Box006から$Box001まで選択するスクリプトの例。
( clearSelection() local objlist = #($Box001,$Box002,$Box003,$Box004,$Box005,$Box006) i = 6 do ( selectMore objlist i = i - 1 ) while i > 1 )
exit
ヘルプ
[HELP]MAXScript 言語リファレンス > プログラム フロー制御 > ループ終了
[HELP] MAXScript に関する質問と回答 > 処理速度を上げる方法 > return、break、exit、continue を使用しない
[HELP] MAXScript に関する質問と回答 > 処理速度を上げる方法 > return、break、exit、continue を使用しない
解説とメモ
exit でループを抜けることができます。
ただし、処理速度を上げるにはexitは使用しないほうが良いそうです。
ただし、処理速度を上げるにはexitは使用しないほうが良いそうです。
Max Scriptのサンプル
whileでBox005まで選択するよう条件を指定しているが、実際には$Box003以降は強制的にループを抜ける例。
( clearSelection() local objlist = #($Box001,$Box002,$Box003,$Box004,$Box005,$Box006) i = 1 while i<=5 do ( selectMore objlist[i] i=i+1 if i>3 then exit ) )
maxScript の記事一覧
・基本情報
・変数
・演算子
・文字列
・配列
・ループ
・条件分岐・エラー回避処理
・関数(Function)
