更新:2007 年 11 月
条件运算符 (?:) 根据布尔型表达式的值返回两个值之一。条件运算符的格式如下
复制代码 | |
---|---|
condition ? first_expression : second_expression; |
备注
如果条件为 true,则计算第一表达式并以它的计算结果为准;如果为 false,则计算第二表达式并以它的计算结果为准。只计算两个表达式之一。
使用条件运算符,可以更简洁、雅观地表达那些否则可能要求 if-else 结构的计算。例如,为在 sin 函数的计算中避免被零除,可编写为
复制代码 | |
---|---|
if(x != 0.0) s = Math.Sin(x)/x; else s = 1.0; |
或使用条件运算符,
复制代码 | |
---|---|
s = x != 0.0 ? Math.Sin(x)/x : 1.0; |
条件运算符为右联运算符,因此该形式的表达式
复制代码 | |
---|---|
a ? b : c ? d : e |
按如下规则计算:
复制代码 | |
---|---|
a ? b : (c ? d : e) |
而不是按照下面这样计算:
复制代码 | |
---|---|
(a ? b : c) ? d : e |
不能重载条件运算符。
示例
C# | 复制代码 |
---|---|
class ConditionalOp { static double sinc(double x) { return x != 0.0 ? Math.Sin(x) / x : 1.0; } static void Main() { Console.WriteLine(sinc(0.2)); Console.WriteLine(sinc(0.1)); Console.WriteLine(sinc(0.0)); } } /* Output: 0.993346653975306 0.998334166468282 1 */ |