使条件运算符的行为类似于 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
.
的值
是否可以让 ?:
运算符处理多个语句,如下例所示?
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
.