首页 百科知识 条件运算符与条件表达式

条件运算符与条件表达式

时间:2023-09-22 百科知识 版权反馈
【摘要】:功能:先算表达式1,若表达式1为“真”,则求解表达式2,此时表达式2的值就是整个条件表达式的值。条件运算符是一个三目运算符,要求有三个操作数;结合方式是从右到左;优先级别很低,只比赋值运算符和逗号运算符高。程序中条件表达式ch=?例如下面的if语句就无法用一个条件表达式替代。

4.2.2 条件运算符与条件表达式

在C语言程序中,简单的if()~else~语句可以用条件表达式语句来代替。例如有以下语句:

img140

可以用下面的条件表达式语句来代替:

img141

其中(x>y)?x:y 是一个条件表达式,?:是条件运算符。该表达式的执行过程是:如果x>y条件为“真”,则表达式取值x,否则取值y。

条件表达式的一般格式如下:

表达式1?表达式2:表达式3

功能:先算表达式1,若表达式1为“真”,则求解表达式2,此时表达式2的值就是整个条件表达式的值。若表达式1为“假”,则求解表达式3,此时表达式3的值就是整个条件表达式的值。

例如:

img142

执行表达式a>b?++a:++b后,a的值为3,b的值为5。

条件运算符是一个三目运算符,要求有三个操作数;结合方式是从右到左;优先级别很低,只比赋值运算符和逗号运算符高。

例如:

img143

注意:

当多个条件表达式嵌套使用时,一般采用从左到右的顺序解释求解。

例如:

img144

img145

程序输出结果为:4,4,5

例4.9 从键盘上输入一个字符,如果它是大写字母,则把它转换成小写字母输出;否则,直接输出。

程序如下:

img146

程序运行结果如下:

img147

程序中条件表达式ch=(ch>='A'&&ch<='Z')?(ch+32):ch,其中32是小写字母和大写字母ASCⅡ码的差值(详细内容请参阅附录1)。

尽管条件表达式能实现一定的选择功能,但不能完全替代一般的if语句,只有在if语句中内嵌的语句均为简单的赋值语句(即if语句的两个分支都为赋值语句)时才能替代。例如下面的if语句就无法用一个条件表达式替代。

img148

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

我要反馈