专题4 选择结构
4.1 条件的描述与条件运算
4.2 if选择结构
4.3 switch选择结构
4.4 选择结构程序举例
4.1 条件的描述与条件运算
关系运算
逻辑运算
条件运算
1 关系运算
(1)关系运算符
运算符:< (小于)、<= (小于等于)、> (大于)、>= (大于等于)、== (等于
)、!= (不等于)
例如:
b*b-4*a*c>=0
x==10 x=10
x==10
(2 )关系表达式
一般形式:
表达式1 关系运算符 表达式2
例如:
x*x+y*y<=1
关系表达式的取值:关系表达式取值为1,代表真;为0,代表假。
分析程序的执行结果。
#include
int main()
{
printf("%d\n",111.1*11.1==1233.21);
return 0;
}
#include
#include
int main()
{
printf("%d\n",fabs(111.1*11.1-1233.21)<=1e-5);
return 0;
}
2 逻辑运算
(1)逻辑运算符
运算符:&& (逻辑与)、|| (逻辑或)、!(逻辑非)。
例如:
0<=x<=20 ×
0≤x≤20
x>=0 && x<=20 √
优先级:逻辑非 逻辑与 逻辑或。
(2 )逻辑表达式
逻辑运算规则。
a b a && b a || b !a
假 假 0 0 1
假 真 0 1 1
真 假 0 1 0
真 真 1 1 0
在C语言中,任何类型的数据都可以表示逻辑量,非0代表真,0代表假。
例如:
5 && 7
!5 && 7
!(5 && 7)
(3 )逻辑运算的特殊规则
a && b:只有a为真时,才判断b。
例如:
a++ && b++
a || b:只有a为假时,才判断b。
例如:
a++ || b++
判断年份year是否为闰年。
闰年的年份可以被4整除而不能被100整除。
能被400整除的年份也是闰年。
(year%4==0 && year%100!=0 ) || (year%400==0)
3 条件运算
一般格式:
表达式1?表达式2:表达式3
运算规则:先求表达式1的值,如果表达式1的值为非0 ,就以表达式2的值作为条件运
算的结果。如果表达式1的值为0,就以表达式3的值作为条件运算的结果。
例如:
i>j?20:30
条件运算的优先级高于赋值运算,但低于关系运算、逻辑运算和算术运算。
注意 条件运算的结合方向是自右向左。当有多个条件表达式嵌套使用时,每个后
续的“:”总是与前面最近的、没有配对的“?”相匹配。
等价
x>y?x:u >v?u:v x>y?x:(u>v?u:v)