三元运算符即“?:”运算符,又被称为条件运算符。其具体格式如下:
mm?nn:zz
三元运算符的运算规则如下。
1)计算条件mm的结果。
2)如果条件mm为true,则计算nn,计算出的结果就是运算结果。
3)如果条件mm为false,则计算zz,计算出的结果就是运算结果。
4)遵循向右扩充原则,即如果表达式为“mm?nn:zz?ff:dd”,则按照顺序“mm?nn(zz?ff:dd)”计算处理。
在使用三元运算符“?:”时,必须注意如下两点。
1)“?:”运算符的第一个操作数必须是可隐式转换为布尔类型的表达式。
2)“?:”运算符的第二个和第三个操作数决定了条件表达式的类型。具体说明如下。
如果nn和zz的类型相同,则这个类型是条件表达式的类型。
如果存在从nn向zz的隐式转换,但不存在从zz向nn的隐式转换,则zz类型为条件表达式的类型。
如果存在从zz向nn的隐式转换,但不存在从nn向zz的隐式转换,则nn类型为条件表达式的类型。
实例8:判断输入的年份是否是闰年
下面通过一个具体的实例来说明使用C#三元运算符的过程。本实例保存在“光盘:\daima\4”文件夹内,项目名为three。其主要代码如下:
上述实例代码的设计流程如下。(www.xing528.com)
1)通过Console()输出指定语句。
2)定义变量mm,赋值为ReadLine()获取的用户输入的年数。
3)定义变量year,赋值为mm的转换值。
4)通过变量ff进行闰年判断处理。
5)定义变量yesNo,进行三元运算处理。
6)将处理后的结果输出。
执行后将首先显示指定的文本,当输入年数“2010”后将显示对应的判断结果,如图4-3所示。
多学一招
在使用三元运算符“?:”时必须注意如下两点。
1)“?:”运算符的第一个操作数必须是可隐式转换为布尔类型的表达式。
2)“?:”运算符的第二个和第三个操作数决定了条件表达式的类型。具体说明如下。
如果nn和zz的类型相同,则这个类型是条件表达式的类型。
如果存在从nn向zz的隐式转换,但不存在从zz向nn的隐式转换,则zz类型为条件表达式的类型。
如果存在从zz向nn的隐式转换,但不存在从nn向zz的隐式转换,则nn类型为条件表达式的类型。
图4-3 实例执行结果
免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。