第5章选择结构程序设计 教学目与要求 掌握关系运算符和逻辑运算符及其优先顺序,关系 表达式和逻辑表达式的组成及运算,语句的三种 形式,条件嵌套时和else配对规则,条件运算符 及条件表达式, switch语句格式和作用 教学内容: 关系运算符和关系表达式:;逻辑运算符和逻辑表达 式;语句; switch语句;程序举例。 教学重点与难点: i语句的三种形式及 switch语句,条件嵌套
1 ▪ 教学目与要求 掌握关系运算符和逻辑运算符及其优先顺序,关系 表达式和逻辑表达式的组成及运算,if语句的三种 形式,条件嵌套时If和else配对规则,条件 运算符 及条件表达式,switch语句格式和作用。 ▪ 教学内容: 关系运算符和关系表达式;逻辑运算符和逻辑表达 式;if语句;switch语句;程序举例。 ▪ 教学重点与难点: if语句的三种形式及switch语句,条件嵌套。 第5章 选择结构程序设计
51关系运算符和表达式 511关系运算符及优先次序:≈ 优先级6(高) 种类:<<===>=> 结合方向:自左向右 优先级别:低于算术高于赋值!=优先级7(低) 例c>a+b />(a 52关系表式/系运算符将两个表达式(算术、关 系、逻輯扣赋值馋字裘达式)连接起来的式子。其值 是一个逻辑值“真鲅假”,在c的逻辑运算中,分 别用1和0表示 b int a=3, b=2, c=l, d, f; a>b 表达式值1 (a>b)==c ∥表达式值1 b+c<a 表达式值0 d=a>b //d=1 ∥/f=0 ·fa>b>c
2 5.1 关系运算符和表达式 5.1.1 关系运算符及优先次序: • 种类:< <= == >= > != • 结合方向:自左向右 • 优先级别:低于算术,高于赋值 < <= > >= == != 优先级6(高) 优先级7(低) 例 c>a+b //c>(a+b) a>b!=c //(a>b)!=c a==b<c //a==(b<c) a=b>c //a=(b>c) 5.1.2 关系表达式:用关系运算符将两个表达式(算术、关 系、逻辑、赋值及字符表达式)连接起来的式子。其值 是一个逻辑值“真”或“假”,在C的逻辑运算中,分 别用1和0表示 •例 int a=3,b=2,c=1,d,f; • a>b • (a>b)==c • b+c<a • d=a>b • f=a>b>c //表达式值1 //表达式值1 //表达式值0 //d=1 //f=0
51关系运算符和表达式 关系运算注意: 例若a=0;b=0.5;x=0.3: 则a<=x<=b的值为0 例5>2>7>8在C中是允许的, 值为0 例inti=1,j7,a; a=i+ 4:=0) 则a=2 例‘a”>0结果为1 A>100结果为0
3 关系运算注意: 例 若a=0; b=0.5; x=0.3; 则 a<=x<=b的值为 0 例 5>2>7>8在C中是允许的, 值为 0 例 int i=1, j=7,a; a=i+(j%4!=0); 则a= 2 例 ‘a’>0 结果为 ‘A’>100 结果为 1 0 5.1 关系运算符和表达式
51关系运算符和表达式 关系运算注意: 例应避免对实数作相等或不等的判断 如1.03.023.0==1.0结果为0 可改写为: fabs(1.03.0*30-1.0)<1e-6 例注意区分“=”与“=” int a=0,b=1; if(a=b printf(“ a equal to b”); eise printf(“ a not equal to b”);
4 关系运算注意: 例 注意区分“=”与“==” int a=0,b=1; if(a=b) printf(“a equal to b”); else printf(“a not equal to b”); 例 应避免对实数作相等或不等的判断 如 1.0/3.0*3.0==1.0 结果为 可改写为:fabs(1.0/3.0*3.0-1.0)<1e-6 0 5.1 关系运算符和表达式
52、逻辑运算符和表达式 521逻辑运算符及顺序 种类:!&& 逻辑运算真值表 b a !a&ba‖b 真 假 真 假 真 真 假 ·C语言中,运算量:0表示“假”, 非0表示“真”, 运算结果:0表示“假”, 表示“真
5 a b !a !b a&&b a||b 真 假 真 假 假 假 真 真 5.2、逻辑运算符和表达式 5.2.1 逻辑运算符及顺序 ▪ 种类: ! && || ▪ 逻辑运算真值表 • C语言中,运算量: 0表示“假” , • 非0表示“真” , • 运算结果: 0表示“假” , • 1表示“真” , 真 假 假 假 假 假 真 真 假 假 真 真 真 假 真 真