【1】关系运算
1.关系运算符
关系运算符 | 含义 | 优先级 |
< | 小于 | 高 |
> | 大于 | |
<= | 小于等于 | |
>= | 大于等于 | |
== | 等于 | 低 |
!= | 不等于 |
2.关系运算实例
a | b | 关系表达式 | 表达式的值 | 含义 |
1 | 2 | a<b | 1 | 成立 |
'b' | 'a' | a<b | 0 | 不成立 |
注意:
(1)参与运算的操作数可以是任何类型的数据。
(2)“=”和“==”的区别。
(3)判断两个实数是否相等不能直接用“==”
由于精度问题,判断两实数是否相等通过比较两实数差的绝对值是否小于一个给定的精度:fabs(a-b)<1e-6
【2】逻辑运算
1.逻辑运算符
逻辑运算符 | 含义 | 类型 | 结合性 | 优先级 |
! | 逻辑非(取反) | 一元 | 右→左 | 高 |
&& | 逻辑与 | 二元 | 左→右 | 中 |
|| | 逻辑或 | 二元 | 左→右 | 低 |
举例:
A | B | !A | A&&B | A||B |
1 | 1 | 0 | 1 | 1 |
1 | 0 | 0 | 0 | 1 |
0 | 0 | 1 | 0 | 0 |
0 | 1 | 1 | 0 | 1 |
2.各运算符的优先级与结合方向
优先级/种类 | 运算符 | 结合方向 | |
高 ↓ 低 | 一元运算符 | ! 、- 、++ 、-- 、sizeof、强制类型转换 | 右→左 |
算术运算符 | * / % | 左→右 | |
+ - | |||
关系运算符 | < <= > >= | 左→右 | |
!= == | |||
逻辑运算符 | && | 左→右 | |
|| | |||
赋值运算符 | = += -= *= /= %= | 右→左 |
【3】if语句
标准格式:
if()
{
.........
}
/*else
{
.....
}*/
【4】课堂作业反思
1.区间的表达形式[2,4]:(x>=2)&&(x<=4)
2.闰年满足条件:(year%4==0&&year%100!=0)||(year%400==0)
3.逻辑表达式在求值时自动优化:
#include<stdio.h>
int main()
{
int a=0,b=1,c=1,d;
d = a && b++ && c--;
printf("%d%d%d%d",a,b,c,d);
return 0;
}
/*输出结果:0110*/
在计算到a时,d已经为0,故不再计算b++和c--的值。