1件运算符 (?:) 根据布尔型表达式的值返回两个值中的一个。条件运算符的格式如下
2
3 复制代码
4condition ? first_expression : second_expression;
5
6
7备注
8如果条件为 true,则计算第一表达式并以它的计算结果为准;如果为 false,则计算第二表达式并以它的计算结果为准。只计算两个表达式中的一个。
9
10使用条件运算符,可以更简洁、雅观地表达那些否则可能要求 if-else 结构的计算。例如,为在 sin 函数的计算中避免被零除,可编写为
11
12 复制代码
13if(x != 0.0) s = Math.Sin(x)/x; else s = 1.0;
14
15
16或使用条件运算符,
17
18 复制代码
19s = x != 0.0 ? Math.Sin(x)/x : 1.0;
20
21
22条件运算符为右联运算符,因此该形式的表达式
23
24 复制代码
25a ? b : c ? d : e
26
27
28按如下规则计算:
29
30 复制代码
31a ? b : (c ? d : e)
32
33
34而不是按照下面这样计算:
35
36 复制代码
37(a ? b : c) ? d : e
38
39
40不能重载条件运算符。
41
42示例
43 复制代码
44// cs_operator_conditional.cs
45using System;
46class MainClass
47{
48 static double sinc(double x)
49 {
50 return x != 0.0 ? Math.Sin(x)/x : 1.0;
51 }
52
53 static void Main()
54 {
55 Console.WriteLine(sinc(0.2));
56 Console.WriteLine(sinc(0.1));
57 Console.WriteLine(sinc(0.0));
58 }
59}
60
61
62输出
63
640.993346653975306
650.998334166468282
661
67
68
2
3 复制代码
4condition ? first_expression : second_expression;
5
6
7备注
8如果条件为 true,则计算第一表达式并以它的计算结果为准;如果为 false,则计算第二表达式并以它的计算结果为准。只计算两个表达式中的一个。
9
10使用条件运算符,可以更简洁、雅观地表达那些否则可能要求 if-else 结构的计算。例如,为在 sin 函数的计算中避免被零除,可编写为
11
12 复制代码
13if(x != 0.0) s = Math.Sin(x)/x; else s = 1.0;
14
15
16或使用条件运算符,
17
18 复制代码
19s = x != 0.0 ? Math.Sin(x)/x : 1.0;
20
21
22条件运算符为右联运算符,因此该形式的表达式
23
24 复制代码
25a ? b : c ? d : e
26
27
28按如下规则计算:
29
30 复制代码
31a ? b : (c ? d : e)
32
33
34而不是按照下面这样计算:
35
36 复制代码
37(a ? b : c) ? d : e
38
39
40不能重载条件运算符。
41
42示例
43 复制代码
44// cs_operator_conditional.cs
45using System;
46class MainClass
47{
48 static double sinc(double x)
49 {
50 return x != 0.0 ? Math.Sin(x)/x : 1.0;
51 }
52
53 static void Main()
54 {
55 Console.WriteLine(sinc(0.2));
56 Console.WriteLine(sinc(0.1));
57 Console.WriteLine(sinc(0.0));
58 }
59}
60
61
62输出
63
640.993346653975306
650.998334166468282
661
67
68