资源描述:
《C语言程序设计课件-第3章-选择结构.ppt》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、C语言程序设计第3章选择结构本章主要内容1.表达式2.if语句3.switch语句4.选择结构的嵌套5.选择结构的应用选择结构在解决大量的实际问题时,常常需要根据不同的情况或条件,制定出不同的解决方案或对策。选择结构选择结构是通过对条件的判断来选择执行不同的程序语句。C语言中是用if语句或switch语句来构成选择结构的。if语句可用于构成两路或多路选择结构;switch语句能方便地构成多路选择结构。一个程序若具有了判断和选择功能,就具备了最基本的智能。3.1表达式条件是以表达式的形式来表示的表达式是用运算符和括号将运算对象连接起来的式子,运算对象可以是常量、变量、函数、表达式等第
2、2章中已经介绍了算术表达式、赋值表达式和逗号表达式,本章将介绍关系表达式、逻辑表达式和条件表达式。关系表达式:2+5<=9逻辑表达式:ch>='a'&&ch<='z'条件表达式:x、>=、==、!=结合性为:左结合优先级为:<、<=、>、>===、!=优先级相同(高)优先级相同(低)关系表达式的值有逻辑真和逻辑假。当表达式成立时值为“真”,用整数“1”表示;当表达式不成立时值为“假”,用整数“0”表示C中无逻辑型数据,常用整型变量存放逻辑值运算符含义关系表达式实例结果<小于“abcd”<”abd”1<=小于等于2+5<=91>大于‘X’
3、>’y’0>=大于等于‘A’>=’9’1==等于‘g’==’G’0!=不等于5>3!=10关系表达式举例例设a='4',b='f',判断下列关系表达式的值'A'<'B'相当于:65<66,值为真a>b相当于:'4'>'f'或52>102,值为假'F'==b相当于:70==102,值为假注意:进行相等比较时一定要用双等号“==”,因为C语言中的单个等号是赋值运算符。逻辑运算符逻辑运算符:!(非)、&&(与)、
4、
5、(或)优先次序:高→低结合性:右结合 左结合 左结合运算规则:运算符含义逻辑表达式实例结果&&逻辑与2>1&&5-31
6、
7、逻辑或2==9
8、
9、00!逻辑非!(6*2)0逻辑
10、表达式的值为逻辑真或逻辑假逻辑表达式的应用例设a=1,b='a',c=3.0,d=0,e='3',ch='A',判断下列逻辑表达式的值:!(c-b)值为0a<=c
11、
12、b<=c值为1!!!!d值为0ch>='a'&&ch<='z'判断小写字母,值为0b>='A'&&b<='Z'判断大写字母,值为0e>='0'&&e<='9'判断数字字符,值为1a
13、
14、b>3-!b值为1逻辑表达式的应用main(){intm1,m2,n=1;m1=(1>3)&&n++;m2=3>1
15、
16、n++;printf("m1=%dm2=%dn=%d",m1,m2,n);}在C的逻辑表达式的求解过程中,
17、并不是所有的逻辑运算符都被执行,只是在必须执行下一个逻辑运算符才能求出表达式的解时才执行该逻辑运算程序的结果m1=?m2=?条件表达式由条件运算符?和:把多个表达式连接起来的式子:e1?e2:e3其中:e1、e2、e3可以是变量或表达式运算规则:若e1的值为真(非0值),则表达式的结果值取e2;否则e1的值为假(0值),则表达式的结果值取e3。实例:设a=2,b=4,c=6,求x和y的值。x=aa?c:(b!=4?4:8);y的值为63.2if语句if语句也称为条件语句,用于构成选择结构。if是根据条件是否成立来控制执行不同的语句组,以完成不同的功能
18、。条件可以是任何类型的表达式,如逻辑型,关系型,数值型等,单个已赋过值的变量或常量也可以作为表达式的特例,如x或5。if语句可构成下列选择结构:if语句的第一种形式-可构成简单选择结构if(表达式)语句组执行过程:若表达式的值为真,则执行语句组;若表达式的值为假,则执行结构后的第1条语句简单选择结构的应用#include"stdio.h"main(){floatsx,yw,average;scanf("%f,%f",&sx,&yw);average=(sx+yw)/2.0;if(average>=90)printf("Excellence!");}输入:90,80输出:???输
19、入:96,88输出:???简单选择结构的应用例:从键盘上任意输入三个整数a,b,c,并按从大到小的顺序显示出来该算法假定程序处理后,a中放三个数中的最大值,b中放三个数中的次大值,c中放三个数中的最小值if语句的第二种形式-可构成两路选择结构if(表达式)语句组1else语句组2执行过程:若表达式的值为真,则执行语句组1;若表达式的值为假,则执行语句组2。选择结构执行完成后,执行结构后的第1条语句。两路选择结构的应用main(){intexp;charch;ch=ge