if
式は、ブール演算のテスト式の結果に基づいて条件付きで式を実行するために使用します。
<if_expr>
の構文は次のいずれかです。
if <expr> then <expr> [else <expr> ]
if <expr> do <expr>
例:
if a > b do (print d; print e) a = (if d = = 0 then 0 else a / d)
最初の <expr>
は、比較式または論理式など、評価を true
または false
にセットするテスト式です。結果が true
の場合、then
または do <expr>
が評価され、その値が <if_expr>
の結果として返されます。結果が false
の場合、オプションの else <expr>
が評価され、その値が <if_expr>
の結果として返されます。else
や do
形式が使用されていない場合、<if_expr>
は undefined
値を返します。
do
形式は、スクリプト リスナーのインタラクティブ セッション中に使用されます。リスナーに評価させる式を入力すると、MAXScript は式が完全であるかどうかを判断してから評価します。リスナーでオプションの else
形式を使用し、else <expr>
を省略すると、MAXScript は else <expr>
の入力を待ち続けます。then <expr>
の後の改行が MAXScript に現在の行を迅速に評価させないからです。
例:
たとえば、次のスクリプトがリスナーに入力された場合、2 行目を入力し終えるまで最初の行は評価されません。
if match x y then print x print "hello"
オプションの else
形式を、ブロックまたは他の式で使用すると、else
を省略した場合は MAXScript により else 形式以降のコードから判断されます。do
形式を if
ステートメントに使用するときは、リスナー内のトップレベルのコマンドに else
を使用しないでください。
例:
if match x y do print x
if...then...else
句はネストできますが、この場合は、コードがわかりやすくなるように Case expression を使用することを検討してください。
例:
if a > b then print a else if b > c then print b else if c > d then print c else print d
「式」で説明されているように、<expr>
式を記述できる場所ならどこでも、MAXScript の任意の構文を記述することができます。ステートメント ベースの言語の場合、通常、if
ステートメントの構文と条件式の構文があります。MAXScript ではどちらの場合でも 1 つの構文を使用します。
例:
次に示す 2 行のコードはいずれも有効で、その意味も明確です。
if a > b then print c else print d x = if a > b then c else d
これは、次のようにネストされた
if
式と、それ自体が式であるネストされた代入を含む 1 行で記述することもできます。x = if (if a > b then c else d) < e then f else (g = 23)