使用 ?: 运算符可以在一个语句中编写简写的 if-else 语句。
condition ? exp1 : exp2;
如果条件为真,则运算符返回 exp1 的值。如果条件为假,则运算符将返回 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");
以下语句将 Balloon 的 ScaleY 属性设定为 time 除以 2(如果 time 小于 2),和 time 乘以 2(如果 time 大于等于 2)。(这会使 ScaleY 属性在前两秒的增加速度比两秒之后的速度慢。)
Balloon.scaleY = (time < 2) ? time / 2 : time * 2;
if (time < 2) Balloon.scaleY = time / 2; else Balloon.scaleY = time * 2;
尽管 ?; 运算符可节省空间和减少键入的内容,但 if...else 形式显然更易于阅读。为此,许多编程人员都避免在复杂表达式中使用 ?; 运算符。