?:演算子

?:演算子を使用すると、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-else 文と同じです。

if (time < 2)
	Balloon.scaleY = time / 2;
else 
	Balloon.scaleY = time * 2;

?; 演算子を使用するとスペースを節約し、入力の手間を省くことはできますが、if...else 形式の方が明らかに読みやすくなります。このため、複雑なエクスプレッションで ?; 演算子はあまり使用されません。