条件操作符&&逻辑操作符

本文解释了C语言中的条件操作符(三目操作符)以及逻辑操作符&&和||的短路行为,通过实例展示了在比较和组合运算中,当左侧表达式满足条件时,右侧表达式不会执行,从而节省计算资源。
摘要由CSDN通过智能技术生成

条件操作符&&逻辑操作符

1)条件操作符

   条件操作符也叫三⽬操作符,需要接受三个操作数的,形式如下:
1
  条件操作符的计算逻辑是:如果 exp1 为真, exp2 计算,计算的结果是整个表达式的结果;如果exp1 为假, exp3 计算,计算的结果是整个表达式的结果!

1
使⽤条件表达式实现找两个数中较⼤值:

int main()
{
 int a = 0;
 int b = 0;
 scanf("%d %d", &a, &b);
 int m = a>b ? a : b;
 printf("%d\n", m);

 return 0;
}

  int m = a>b?a:b;这个如果表达式(a>b)为真,则执行a,否则执行b!

2)&&和||短路问题。

  -C语言逻辑运算符还有⼀个特点,它总是先对左侧的表达式求值,再对右边的表达式求值,这个顺序是保证的。
  如果左边的表达式满足逻辑运算符的条件,就不再对右边的表达式求值。这种情况称为“短路”。

  说说&&和||的计算规则.
  C = A&&B,只有当A和B恒为真,C才为真!
  C = A||B,只要A或B有一个为真,则C为真!

int month = 0;
if(month >= 3 && month <= 5){
	//语句
}

  *由&&操作符可知,当month >= 3和month <=5恒成立,语句才执行,如果month >= 3不成立,那么此结果一定是假,所以后面的month<=3不执行。这种称为“短路”。(跟人一样聪明!!!)

int month = 0;
if(month >= 3 ||month <= 5){
  //语句
}

  *由||操作符可知,当month >= 3和month <=5只要有一个成立,语句才执行,如果month >= 3成立,那么此结果一定是真,所以后面的month<=3不执行。这种称为“短路”。(跟人一样聪明!!!)
  结论:
   *对于&&操作符来说,左边操作数的结果是0的时候,右边操作数就不再执⾏。
   *|| 操作符的左操作数的结果不为0时,就⽆需执⾏右操作数

  例子:
  练习:阅读代码,计算代码输出的结果.

int main()
{
int i = 0,a=0,b=2,c =3,d=4;
i = a++ && ++b && d++;
//i = a++||++b||d++;
printf("a = %d\n b = %d\n c = %d\nd = %d\n", a, b, c, d);
return 0;
}
执行结果

1
原因:1


int main()
{
int i = 0,a=0,b=2,c =3,d=4;
i = a++ && ++b && d++;
//i = a++||++b||d++;
printf("a = %d\n b = %d\n c = %d\nd = %d\n", a, b, c, d);
return 0;
执行结果

1
原因:i = a++||++b||d++,先计算a++,a++,先使用,后计算,a = 0,为假,之后a = 1,b = 2,++b,先++,b = 3,再使用,为真,对于||来说,只要有一个为真,则整个表达式为真,后面的不计算,得:a = 1,b = 3,c = 3,d = 4
hehe

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值