第四章
选择结构程序设计
计算机与通信工程学院
万红
内容概述
本章介绍C语言的选择结构。主要讲解了if语句和switch语句。
教学目的和基本要求:
要求学生掌握选择结构程序设计,嵌套程序设计,学会运用if语句及switch语句。
教学重点:
if语句、嵌套程序。
目录
4.1 关系运算符与关系表达式4.2 逻辑运算符与逻辑表达式4.3 if语句
4.4 switch语句
4.5 结构嵌套程序举例
选择结构概述
定义:程序进行当中需要根据表达式的结果决定执行哪条语句时,使用选择结构。选择结构示意如下:
条件
s1s2
选择结构
4.1 关系运算符和关系表达式
?定义:关系运算就是比较数据之间的关系,包括对两个数据进行相等比较或大小比较等运算。?选择结构中通常要借助关系运算。
4.1.1 关系运算符
?关系运算符:
注意书写规范
> 、< 、>= 、<= 、= = 、!=
?优先级:>、<、>=、<=的优先级为6,==、!=的优先级为7。?结合性:从左至右。
掌握真(true)与假(false)的概念
关系运算的结果是一个逻辑值
即:结果成立值为1,称为逻辑真结果不成立值为0,称为逻辑假
分析以下关系表达式:
0>9
100!=20
score>90
x==y
a+b>=c-d
4.1.2 关系表达式
?关系表达式:用关系运算符连接的表达式。?关系表达式的值:是逻辑值“真”或“假”
通过分析其中的关系表达式,下面程序的输出结果是多少?
#include
main()
{int x=8,y=-8;
printf(“%d\n”, 0<=x<=10);
printf(“%d\n”, 0<=y<=10);
}
结果:
1
4.2 逻辑运算符与逻辑表达式
?定义:逻辑运算通常用来连接关系运算?逻辑运算常和关系运算一起使用
4.2.1 逻辑运算符
?逻辑运算符:
! (逻辑非)、&& (逻辑与)、||(逻辑或)
?优先级:!(2) &&(11) ||(12)
?结合性:!为一元运算符,结合性从右至左;&&和||为二元运算符,结合性从左至右。
取反
二者都是1,结果才是1
任何一方是1,结果都是1
逻辑运算真值表
p q p&&q p||q!p
00001
01011
10010
11110
要求:进行逻辑运算的运算量必需是逻辑值0或1。特殊地,非零的数值一律认为逻辑“1”,即“真”。
例如:
0&&20 结果为0
0||20 结果为1
!(-23) 结果为0
有变量a,a=2的值恒为逻辑1
4.2.2 逻辑表达式
?逻辑表达式:用逻辑运算符连接的表达式。
?逻辑表达式的值:是逻辑值“真(1)”或“假(0)”
思考:用逻辑表达式表示数学中的不等式(0≤ x≤ 10)
010x
表示方法为:
x> = 0 &&x< = 10或0< = x &&x< = 10
如果写为:
0< = x < = 10,则只代表一个多项关系表达式,
试计算当x=8和x=-8时的两种表示的表达式值
分析如下表达式,输出结果是多少?
#include
main()
{int x=8,y=-8;
printf(“%d\n”, 0<=x&&x<=10); printf(“%d\n”, 0<=y&&y<=10); }
结果:
1
关系运算和逻辑运算的优先级
低于算术运算符,高于赋值运算符。(!运算除外)
算术运算关系和逻辑运算赋值运算例如:x+y>=a+b等价于(x+y)>=(a+b)
b=i==c等价于b=(i==c)
关系运算符和逻辑运算符的内部又有优先顺序:! ( >、>=、<、<=) (= =、! =) && ||高低
关系运算和逻辑运算举例
判断变量ch的值是否是字母,可以用以下逻辑表达式
ch>=…a?&&ch<=…z?||ch>=…A?&&ch<=…Z?
用括号清晰的表达运算层次:
((ch>=…a?)&&(ch<=…z?))||((ch>=…A?)&&(ch<=…Z?))值为1表明变量ch是字母;值为0表明变量ch不是字母
关系运算和逻辑运算中要注意的规则
设int a=5,b=6,c=7,d=8,m=2,n=2;
表达式(m=a>b)&&(n=c 表达式(m=a 说明: 1.对于逻辑“与”运算,只要有一个运算量为0,则表达式 的值为0,第二个表达式并不计算 2.对于逻辑“或”运算,只要有一个运算量为1,则表达式 的值为1,第二个表达式并不计算