条件运算符和条件表达式

对于被判别的表达式的值为“真”或“假”时,都执行一个赋值语句且向同一个变量赋值的if语句,可以替换成条件表达式。

eg:if(a>b)        等价于

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

else

        max=b;

(a>b)?a:b;是条件表达式,“?”是条件运算符。

一.条件运算符和条件表达式

条件运算符由两个符号(?和:)组成,必须一起使用,要求有三个操作对象,称为三目(元)运算符,它是C语言中唯一的一个三目运算符,属于右结合(从右往左)。

(注:右结合:条件运算符,赋值运算符,单目运算符;

         算术运算符左结合(自左至右),复制运输右结合,其他复杂的遇到时查一下即可)

条件表达式的一般形式为表达式1?表达式2:表达式3

表达式1值为真(非0),接表达式2;表达式1值为假(0),接表达式3(1真2,1假3)

注:(1)条件运算符优先于赋值运算符,因此赋值表达式的求解过程是先求解条件表达式,再将它的值赋给max(条件运算符优先级倒数第三,仅高于赋值运算符和逗号运算符);

逗号运算符:eg:a+5,b+c,a*b+c;两个逗号将表达式分为三个子表达式,整个表达式计算结果等于最后一个子表达式的结果。

(2)表达式2和3不仅可以是数值表达式,还可以是赋值表达式或函数表达式

二.应用代码

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

#include<stdio.h>
int main()
{
    char ch;
    scanf("%c",&ch);
    ch=(ch>='A'&&ch<='Z')?(ch+32):(ch);
    printf("%c\n",ch);
    return 0;    
}

  • 2
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值