资源描述:
《选择结构程序设计 课件.ppt》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、选择结构程序设计选择结构是计算机科学用来描述自然界和社会生活中分支现象的手段。其特点是:根据所给定选择条件为真(即分支条件成立)与否,而决定从各实际可能的不同操作分支中执行某一分支的相应操作,并且任何情况下恒有“无论分支多寡,必择其一;纵然分支众多,仅选其一”的特性。4.1关系运算符及表达式4.2逻辑运算符及表达式4.3条件运算符4.4单条件选择if语句4.5开关分支switch语句第4章选择结构程序设计第4章选择结构程序设计4.1关系运算符及表达式关系表达式是由关系运算符连接表达式构成的。1.关系运算符关系运算符都是双目运算符,共有如下6
2、种:>,<,>=,<=,==,!=2.关系表达式由关系运算符组成的表达式,称为关系表达式。例如x>y、(x=5)<=y等。关系表达式的值是整数0或1,其中0代表逻辑假;1代表逻辑真。第4章选择结构程序设计4.2逻辑运算符及表达式逻辑表达式是由逻辑运算符连接表达式构成的。1.逻辑运算符C语言中提供了3种逻辑运算符:(1)单目逻辑运算符:!(逻辑“非”)。(2)双目逻辑运算符:&&(逻辑“与”)。(3)双目逻辑运算符:
3、
4、(逻辑“或”)。其中逻辑“与”&&的优先级大于逻辑“或”
5、
6、,它们的优先级都小于逻辑“非”!。逻辑运算符具有自左至右的结合性
7、。第4章选择结构程序设计2.逻辑表达式由逻辑运算符组成的表达式称为逻辑表达式。逻辑表达式的结果为1(结果为“真”时)或0(结果为“假“时)。表达式a和表达式b进行逻辑运算时,其运算规则,见表4-1。第4章选择结构程序设计表4-1逻辑运算的真值表ab!a!ba&&ba
8、
9、b真真假假真真真假假真假真假真真假假真假假真真假假第4章选择结构程序设计3.短路表达式在由&&和
10、
11、运算符组成的逻辑表达式中,只对能确定整个表达式值所需要的最少数目的子表达式进行计算。也就是说,当计算出一个子表达式的值之后便可确定整个逻辑表达式的值时,后面的子表达式就不需要再
12、计算了,整个表达式的值就是该子表达式的值。这种表达式也称为短路表达式。第4章选择结构程序设计例如:要判别某年是否为闰年,判定条件是符合下面二者之一者就是闰年:能被4整除,但不能被100整除;能被4整除又能被400整除。上述条件可用逻辑表达式来表示:(year%4==0&&year%100!=0)
13、
14、year%400==0表达式的值为真就是闰年,否则就是非闰年。4.3条件运算符条件运算符是C语言中唯一的三目运算符,条件表达式的一般格式为:表达式1?表达式2:表达式3条件运算符的执行过程是:先求解表达式1,当值为非0(真),则求解表达式2,此时
15、表达式2的值就作为整个条件表达式的值;否则求解表达式3,此时表达式3的值就作为整个条件表达式的值。条件运算符的优先级高于赋值运算符,但是低于关系运算符和算术运算符。条件运算符的结合性为自右至左。第4章选择结构程序设计4.4if语句单条件选择结构的特点是:所给定的选择条件(它可以是逻辑表达式也可以是关系表达式)的值如果为真,则执行为真时的分支;如果为假则执行为假时的分支。第4章选择结构程序设计4.4.1If语句的三种形式if语句是根据所给定的条件决定执行的操作,是“二选一”的分支结构。If语句的一般格式为:if(表达式){语句序列1;}els
16、e{语句序列2;}第4章选择结构程序设计1.if<表达式>语句当表达式为真时,执行语句,表达式为假时跳过语句。2.If〈表达式〉语句1else语句2当表达式为真时,执行语句1,表达式为假时执行语句2。无论如何,语句1与语句2每次只能有一个被执行。语句表达式假(0)真(非0)Ap真假语句语句1表达式假真p真假语句1语句2语句23.if...elseif语句if<表达式1>语句1elseif<表达式2>语句2elseif<表达式3>语句3::elseif<表达式m>语句melse语句n其流程图见P69图4.6只有三个表达式的if…else语句的
17、N-S图见右图if<表达式1>语句1elseif<表达式2>语句2elseif<表达式3>语句3else语句4假表达式1表达式2表达式3语句1语句2语句3语句4真真真假假使用条件语句注意:1.if后面的<表达式>一般为逻辑表达式或关系表达式,也可为整型实型字符型指针型数据,如表达式的值为0,系统按“假”处理,若为非0,按“真”处理2.注意语句包含了分号;3.三种形式中的“语句”也可以有多个操作语句,此时须用花括号“{}”将几个语句括起来成为一个复合语句.{}外不需另加;4.Else总是与前面的最靠近它的if语句配对5.当if语句中的内
18、嵌语句为赋值语句(且两个分支都给同一个变量赋值)时,可以用条件表达式代替if语句.if(8)x=3;elsex=9;例:if(‘a’)printf(“%d”,‘a’);if(5)