zoukankan      html  css  js  c++  java
  • C语言基础丨运算符之条件运算符(七)

    条件运算符(conditional operator)有时候也称为三元运算符(ternary operator,或者trinary operator),因为它是唯一需要 3 个操作数的运算符,条件表达式的一般形式为:

    条件 ? 表达式1 : 表达式2

    条件运算操作会首先计算条件,然后根据条件的计算结果,再决定要计算两个表达式中的哪一个。条件表达式通常用于赋值语句之中。

    其求值规则为:

    如果条件表达式为真,整个表达式的值为表达式1的值;

    如果条件表达式为假,整个表达式的值为表达式2的值。

    条件运算符代表了在程序流中的条件式跳转,因此,有时候可以与 if-else 语句相互替代。

    比如:如果我们希望获得两个数中最大的一个,我们可以使用if语句:

     if(a>b){   max = a;   }else{   max = b;   }

    上面所描述的if else语句等价于:

    max = (a>b)?a:b;

    该语句的语义是:如a>b为真,则把a赋予max,否则把b赋予max。大家可以认为条件运算符是一种简写的if else,完全可以用if else来替换。

    如果你正在学习C/C++遇到瓶颈,迷茫,困惑,那么不妨加入C语言C++学习企鹅圈,跟着前辈一起交流学习,还有一些(源码、项目实战视频、项目笔记,基础入门教程)分享哟!即使是零基础的学习者,都可以一起成长进步。

    另外我们使用条件表达式时,还应注意以下几点:

    ①条件运算符的优先级低于关系运算符和算术运算符,但高于赋值符。因此

    max = (a>b)?a:b;

    可以去掉括号而写为

    max=a>b?a:b;

    ②条件运算符?和:是一对运算符,不能分开单独使用。

    ③条件运算符的结合方向是自右至左。比如:

    a>b?a:c>d?c:d;

    应理解为:

    a>b?a:(c>d?c:d);

    这也就是条件表达式嵌套的情形,即其中的表达式又是一个条件表达式。

    用条件表达式重新编程,输出两个数中的最大值:

       #include <stdio.h>   int main(){   int a,b;   printf("Inputtwonumbers:");   scanf("%d%d",&a,&b);   printf("max=%d\n",a>b?a:b);   return 0;   }

    运行结果:

        Input two numbers:23 45   max = 45

    今天C语言中的条件运算符知识就分享到这里啦,希望对大家学习C语言能起到一定的帮助作用。

  • 相关阅读:
    【CSP-S膜你考】不怕噩梦 (模拟)
    【CSP-S膜你考】 A
    【CSP-S膜你考】即时战略(模拟)
    【CSP-S膜你考】最近公共祖先 (数学)
    【题解】洛谷 P1449 后缀表达式
    【题解】 洛谷 P2649 游戏预言
    【题解】洛谷 P1083 借教室
    【题解】洛谷 P1080 国王游戏
    【题解】洛谷 P1079 Vigenère 密码
    Bzoj4558 [JLoi2016]方
  • 原文地址:https://www.cnblogs.com/mu-ge/p/14350069.html
Copyright © 2011-2022 走看看