使条件运算符的行为类似于 C 中的 if/else 语句

Making the conditional operators behave like if/else statements in C

是否可以让 ?: 运算符处理多个语句,如下例所示?

condition ? FirstTrueExpression SecondTrueExpression : FirstFalseExpression SecondFalseExpression

有没有办法避免指定 'else' 语句?

condition ? TrueExpression

您可以使用逗号运算符 , 连接多个表达式。 表达式从左到右求值,其结果类型和值将是右侧表达式的类型和值。

condition ? FirstTrueExpression, SecondTrueExpression : (FirstFalseExpression, SecondFalseExpression)

请注意,由于运算符优先级,您需要 () 大约 (FirstFalseExpression, SecondFalseExpression),而您不需要 () 大约 FirstTrueExpression, SecondTrueExpression.

您可以使用

condition && TrueExpression

而不是

condition ? TrueExpression

这要归功于short-circuit对逻辑和&&运算符的评估
condition 为假时,无论 TrueExpression 的值如何,condition && TrueExpression 都将为假 (0),因此不会计算 TrueExpression
condition 为真时,计算 TrueExpression 因为需要它来确定 condition && TrueExpression.

的值