物联网学习教程——if语句2

202 阅读2分钟
接着上一篇继续哈:

  3.条件运算符

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

  功能:判断表达式1的值,如果成立就执行表

  达式2,否则就执行表达式3

  使用场合:若在if语句中,当被判别的表达式的

  值为“真”或“假”时,都执行一个赋值语

  句且向同一个变量赋值时,可以用一个

  条件运算符来处理。

  例:

  if(a>b)max=a;

  elsemax=b;

  当a>b时将a的值赋给max,当a≤b时将b的值赋给max,

  可以看到无论a>b是否满足,都是向同一个变量赋值。

  可以用下面的条件运算符来处理:

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

  说明:

  (1)条件运算符的执行顺序:先求解表达式1,若为非0(真)

  则求解表达式2,此时表达式2的值就作为整个条件表达式

  的值。若表达式1的值为0(假),则求解表达式3,表达

  式3的值就是整个条件表达式的值。

  (2)条件运算符优先级高于赋值运算符,低于关系运算符

  和算术运算符。

  (3)条件运算符的结合方向为“自右至左”。

  (4)“表达式2”和“表达式3”不仅可以是数值表达式,还可以

  是赋值表达式或函数表达式。

  (5)条件表达式中,表达式1的类型可以与表达式2和表达

  式3的类型不同。

  例:输入一个字符,判别它是否大写字母,如果是,将它转换成小写字母;如果不是,不转换。然后输出最后得到的字符。

  #include<stdio.h>

  void main()

  {char ch;

  scanf("%c",&ch);

  ch=(ch>='A'&&ch<='Z')?(ch+32):ch;(如果字符变量ch的值为大写字母,则条件表达式的值为(ch+32),即相应的小写字母。如果ch的值不是大写字母,则条件表达式的值为ch,即不进行转换。)

  printf("%c\n",ch);

  }