【摘要】:使用条件表达式时,还应注意以下几点:1)条件运算符的运算优先级低于关系运算符和算术运算符,但高于赋值符。x:y2)条件运算符“?”3)条件运算符的结合方向是自右向左的。例如:等价为这种类似于if语句的嵌套使用,也就是条件表达式嵌套的情形,即其中的表达式3可以又是一个条件表达式。
在前面学习了if语句,但是如果在条件语句中,只执行单个的赋值语句时,常可使用条件表达式来实现。
其一般格式为:
表达式1? 表达式2:表达式3
其意义为:当逻辑表达式1的值为真(非0值)时,整个表达式的值为表达式2的值;当逻辑表达式的值为假(值为0)时,整个表达式的值为表达式3的值。要注意的是条件表达式中逻辑表达式的类型可以与表达式2和表达式3的类型不一样。
其中的“?:”符号是三目运算符,它要求有3个操作对象,所以被称为三目运算符,也是C语言中唯一的三目运算符。
例如,有以下if语句:
可用条件表达式可以简写为:
max=(x>y)?x:y;
其意义与上面这段if语句是一样的,很明显代码比上一段程序要少很多,编译的效率相对来说也就高一些,但有着和复合赋值表达式一样的缺点就是可读性相对较差。在实际应用时要根据自己习惯来使用。
使用条件表达式时,还应注意以下几点:
1)条件运算符的运算优先级低于关系运算符和算术运算符,但高于赋值符。因此,(www.xing528.com)
max=(x>y)?x:y
可以去掉括号而等价为:
max=x>y?x:y
2)条件运算符“?”和“:”是一个整体,即一个运算符,不能将其分开单独使用。
3)条件运算符的结合方向是自右向左的。
例如:
等价为
这种类似于if语句的嵌套使用,也就是条件表达式嵌套的情形,即其中的表达式3可以又是一个条件表达式。
【例5.6】 输入一个字符。判别它是否是大写字母,如果是,将其转换为小写,否则不转换。然后输出最后得到的字符。
免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。