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


    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
    #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;

     

    /* 输出:

    */

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

  • 相关阅读:
    ninja编译方法介绍
    对LitJson开源插件的自定义尝试
    C++库——windows下使用Qt5.15.2+mingw64+msys2编译c++数学库GSL
    linux后台运行java项目/ jar包:nohup 命令
    MyBatis有哪几种运行SQL的方式呢?
    SPARKSQL3.0-Spark兼容多版本Hive源码分析
    深度学习| 注意力机制
    Java Swing 飞机大战游戏
    Java面试题火了:这可能是历史上最简单的一道面试题了
    幂等设计详解
  • 原文地址:https://blog.csdn.net/weixin_40186813/article/details/126211524