您当前的位置:首页 > 计算机 > 编程开发 > C语言

C语言条件运算符(?:)的用法

时间:10-08来源:作者:点击数:

前面我们讲到过,编程时总希望尽可能地减少代码的输入量。在C语言中,使用条件运算符可以代替 if…else… 语句(见图 1),不仅能减少代码输入量,还可以避免漏掉必需的{ }括号。其一般格式如下:

(condition)?(条件成立时执行的语句):(条件不成立时执行的语句)       //condition 可以是任何形式的条件判断表达式
使用条件运算符“?:”可以替换 if…else… 语句
图 1:使用条件运算符? :可以替换 if…else… 语句

比如下面使用条件运算符的语句,表示当 total 的值小于等于 2000 时,把它的值增大为原来的 1.2 倍:total*1.20,当 total 的值大于 2000 时,把它的值增大为原来的 1.5 倍:total*1.50。

(total<=2000)?(total*=1.20):(total*1.50);         ①

等价于:

if(total<=2000)
    {total *= 1.20;}
else
    {total *= 1.50;}

条件运算符可以看成“用问号?提出一个问题,当它成立时,就做冒号:之前的事;否则,就做冒号之后的事”。

上面的语句 ① 中,因为给变量 total 赋值出现了两次,使用条件运算符可以更加简化为下面的形式:

total *= (total<=2000)?(1.20):(1.50);

条件运算符还可以出现在 if 语句不能出现的地方。比如下面的printf( )中,如果梨(pear)的个数大于 1,就打印其复数形式(在最后多打印一个 s),具体情况如图 2 所示。

printf("I ate %d pear%s.",numPear,(numPear>1)?("s"):(""));
条件运算符可以出现在 if…else… 语句不能出现的地方
图 2:条件运算符可以出现在 if…else… 语句不能出现的地方
方便获取更多学习、工作、生活信息请关注本站微信公众号城东书院 微信服务号城东书院 微信订阅号
推荐内容
相关内容
栏目更新
栏目热门