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



是否可以使?:运算符处理以下示例中的几个语句?

condition ? FirstTrueExpression SecondTrueExpression : FirstFalseExpression SecondFalseExpression

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

condition ? TrueExpression

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

condition ? FirstTrueExpression, SecondTrueExpression : (FirstFalseExpression, SecondFalseExpression)

请注意,由于运算符优先级,(FirstFalseExpression, SecondFalseExpression)周围需要(),而FirstTrueExpression, SecondTrueExpression周围不需要()

你可以使用

condition && TrueExpression

而不是

condition ? TrueExpression

这要归功于逻辑和&&运算符的短路评估
condition为假时,无论TrueExpression的值如何,condition && TrueExpression都将为假(0(,因此不评估TrueExpression
condition为true时,会评估TrueExpression,因为需要确定condition && TrueExpression的值。

相关内容

最新更新