?:演算子を使用すると、if-else 文を 1 つの文に省略して記述することができます。
condition ? exp1 : exp2;
条件が true であれば、演算子は exp1 の値を返します。条件が false であれば、演算子は exp2 の値を返します。
// If $y > 20, $x is set to 10, // otherwise $x is set to the value of $y. $x = ($y > 20) ? 10 : $y; // If $x > 10, print "Greater than", otherwise // print "Less than or equal". print(($x > 10) ? "Greater than" : "Less than or equal");
次の文は、time (時間)が 2 秒未満であれば Balloon のスケール Y (ScaleY)アトリビュートに time/2 を代入し、time が 2 秒以上であれば Balloon のスケール Y アトリビュートに time*2 を代入します(したがって、スケール Y アトリビュートは最初の 2 秒間はそれ以降よりもゆるやかに増加します)。
Balloon.scaleY = (time < 2) ? time / 2 : time * 2;
if (time < 2) Balloon.scaleY = time / 2; else Balloon.scaleY = time * 2;
?; 演算子を使用するとスペースを節約し、入力の手間を省くことはできますが、if...else 形式の方が明らかに読みやすくなります。このため、複雑なエクスプレッションで ?; 演算子はあまり使用されません。