C Primer Plus(6) 中文版 第7章 C控制语句:分支和跳转 7.5 条件运算符 ?:

发布于:2023-01-14 ⋅ 阅读:(278) ⋅ 点赞:(0)

7.5 条件运算符:?:
C提供条件运算符(conditional expression)作为表达if else语句的一种便捷方式,该表达式使用?:条件运算符。该运算符分为两部分,需要3个运算对象。条件运算符是C语言中唯一的三元运算符。
x = (y < 0) ? -y : y; //条件运算符
用if else可以这样表达:
if( y < 0 ){
    x = -y;
} else{
    x = y;
}
条件表达式的通用形式如下:
expression1 ? expression2 : expression3
如果expression1为真(非0),那么整个条件表达式的值与expression2的值相同;如果expression1为假(0),那么整个条件表达式的值与expression3的值相同。
需要把两个值的一个赋给变脸时,就可以用条件表达式。
通常,条件运算符完成的任务用if else语句也可以完成。但是,使用条件运算符的代码更简洁,而且编译器可以生成更紧凑的程序代码。
油漆程序
/* paint.c -- uses conditional operator */
#include <stdio.h>
#define COVERAGE 350       // square feet per paint can
int main(void)
{
    int sq_feet;
    int cans;
    
    printf("Enter number of square feet to be painted:\n");
    while (scanf("%d", &sq_feet) == 1)
    {
        cans = sq_feet / COVERAGE;
        cans += ((sq_feet % COVERAGE == 0)) ? 0 : 1;
        printf("You need %d %s of paint.\n", cans,
               cans == 1 ? "can" : "cans");
        printf("Enter next value (q to quit):\n");
    }
    
    return 0;

 

/* 输出:

*/

整数除法的计算结果会被截断。


网站公告

今日签到

点亮在社区的每一天
去签到