首页 理论教育 AVR单片机条件运算符

AVR单片机条件运算符

时间:2023-11-20 理论教育 版权反馈
【摘要】:使用条件表达式时,还应注意以下几点:1)条件运算符的运算优先级低于关系运算符和算术运算符,但高于赋值符。x:y2)条件运算符“?”3)条件运算符的结合方向是自右向左的。例如:等价为这种类似于if语句的嵌套使用,也就是条件表达式嵌套的情形,即其中的表达式3可以又是一个条件表达式。

AVR单片机条件运算符

在前面学习了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】 输入一个字符。判别它是否是大写字母,如果是,将其转换为小写,否则不转换。然后输出最后得到的字符。

免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。

我要反馈