欢迎来到天天文库
浏览记录
ID:59209106
大小:255.50 KB
页数:39页
时间:2020-09-26
《第5章选择结构程序设计ppt课件.ppt》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、第五章选择结构程序设计本章内容:1.关系运算符和关系表达式2.逻辑运算符和逻辑表达式3.if语句的使用4.条件运算符和条件表达式5.switch语句的使用6.程序举例顺序结构语句1语句2条件语句1语句2YN选择结构选择结构--根据某些条件决定执行或不执行某组操作关系运算符和表达式1.关系运算符及优先次序比较两个量的运算符称为关系运算符。在C语言中有以下关系运算符:<小于<=小于或等于>大于>=大于或等于==等于!=不等于关系运算符的优先级别:(1)>、>=、<、<=优先级相等,==、!=优先级相等,前者高于后者。(2)关系运算符的优先级低于
2、算术运算符。(3)关系运算符的优先级高于赋值运算符。关系表达式的一般形式为:表达式1关系运算符表达式2例如:a+b>c-dx>3/2'a'+10的值为“真”,即为1。(a=3)>(b=5)由于3>5不成立,其值为0。关系表达式是表达式,因此也允许出现嵌套的情况。如:a>(b>c),a!=(c==d)等。2.关系表达式1.逻辑运算符C语言中提供了三种逻辑运算符!非运算&&与运算
3、
4、或运算运算符&&、运算
5、符
6、
7、均为双目运算符,具有左结合性。非运算符!为单目运算符,具有右结合性。1)逻辑运算符优先级如下:(1)!高于&&高于
8、
9、(2)&&,
10、
11、低于关系运算符,!高于算术运算符(*,/)逻辑运算符和表达式按照运算符的优先顺序可以得出:a>b&&c>d等价于(a>b)&&(c>d)!b==c
12、
13、d14、15、(dc&&x+yc)&&((x+y)16、数值代表“假”,以非“0”的数值代表“真”。(1)与运算&&参与运算的两个量都为真时(非0),结果才为真(值为1),否则为假(值为0)。例如:5>0&&4>2,由于5>0为真,4>2也为真,其结果也为“真”,表达式的值为1。3)逻辑运算的规则:(2)或运算17、18、参与运算的两个量只要有一个为真(非0),结果就为真(值为1)。两个量都为假(值为0)时,结果为假(值为0)。例如:5>019、20、5>8,结果也就为真(值为1)。(3)非运算!参与运算量为真(非0)时,结果为假(值为0);参与运算量为假(值为0)时,结果为真(值为1)。例如:!(5>0)的结21、果为假,即为0。2.逻辑表达式逻辑表达式的一般形式为:表达式&&表达式表达式22、23、表达式!表达式逻辑表达式的值:各种逻辑运算的最后值,以“1”和“0”分别代表“真”和“假”。3)逻辑运算的规则:main(){charc='k';inti=1,j=2,k=3;floatx=3e+5,y=0.85;printf("%d,%d",!x*!y,!!!x);printf("%d,%d",x24、25、i&&j-3,i26、27、i+j+k);}分析下段程序的输出结果0,0128、,00,1在逻辑表达式的求解中,并不是所有的逻辑运算符都执行,只有在必须执行下一个逻辑运算符才能求出表达式的值时,才执行下一个运算符。(1)表达式1&&表达式2&&……a+b>0&&b++(a=1,b=-2)如果:表达式1的值是0,无论表达式2的值是什么,整个表达式的值都为0,因此表达式2就不计算了。(2)表达式129、30、表达式231、32、……a+b>033、34、b++(a=1,b=2)如果:表达式1的值是1,无论表达式2的值是什么,整个表达式的值都为1,因此表达式2就不计算了。说明:(3)若a=1,b=2,c=3,d=4,m和n原值为1(m=a>b)&&35、(n=c>d)则m=0,而n仍保持原值(4)‘c’&&‘d’逻辑运算符两侧,可以是任意类型的数据类型说明:1.if语句有三种基本形式1)第一种形式,基本形式:if(表达式)语句;如果表达式的值为真,则执行其后语句,否则不执行该语句。语句表达式非00if语句voidmain(){inta,b,max;scanf("%d,%d",&a,&b);max=a;if(max36、,b;scanf("%d,%d",&a,&b);if(a>b)printf("max=%d",a);elseprintf("max=%d",b);}例:语句1表达式非00
14、
15、(dc&&x+yc)&&((x+y)16、数值代表“假”,以非“0”的数值代表“真”。(1)与运算&&参与运算的两个量都为真时(非0),结果才为真(值为1),否则为假(值为0)。例如:5>0&&4>2,由于5>0为真,4>2也为真,其结果也为“真”,表达式的值为1。3)逻辑运算的规则:(2)或运算17、18、参与运算的两个量只要有一个为真(非0),结果就为真(值为1)。两个量都为假(值为0)时,结果为假(值为0)。例如:5>019、20、5>8,结果也就为真(值为1)。(3)非运算!参与运算量为真(非0)时,结果为假(值为0);参与运算量为假(值为0)时,结果为真(值为1)。例如:!(5>0)的结21、果为假,即为0。2.逻辑表达式逻辑表达式的一般形式为:表达式&&表达式表达式22、23、表达式!表达式逻辑表达式的值:各种逻辑运算的最后值,以“1”和“0”分别代表“真”和“假”。3)逻辑运算的规则:main(){charc='k';inti=1,j=2,k=3;floatx=3e+5,y=0.85;printf("%d,%d",!x*!y,!!!x);printf("%d,%d",x24、25、i&&j-3,i26、27、i+j+k);}分析下段程序的输出结果0,0128、,00,1在逻辑表达式的求解中,并不是所有的逻辑运算符都执行,只有在必须执行下一个逻辑运算符才能求出表达式的值时,才执行下一个运算符。(1)表达式1&&表达式2&&……a+b>0&&b++(a=1,b=-2)如果:表达式1的值是0,无论表达式2的值是什么,整个表达式的值都为0,因此表达式2就不计算了。(2)表达式129、30、表达式231、32、……a+b>033、34、b++(a=1,b=2)如果:表达式1的值是1,无论表达式2的值是什么,整个表达式的值都为1,因此表达式2就不计算了。说明:(3)若a=1,b=2,c=3,d=4,m和n原值为1(m=a>b)&&35、(n=c>d)则m=0,而n仍保持原值(4)‘c’&&‘d’逻辑运算符两侧,可以是任意类型的数据类型说明:1.if语句有三种基本形式1)第一种形式,基本形式:if(表达式)语句;如果表达式的值为真,则执行其后语句,否则不执行该语句。语句表达式非00if语句voidmain(){inta,b,max;scanf("%d,%d",&a,&b);max=a;if(max36、,b;scanf("%d,%d",&a,&b);if(a>b)printf("max=%d",a);elseprintf("max=%d",b);}例:语句1表达式非00
16、数值代表“假”,以非“0”的数值代表“真”。(1)与运算&&参与运算的两个量都为真时(非0),结果才为真(值为1),否则为假(值为0)。例如:5>0&&4>2,由于5>0为真,4>2也为真,其结果也为“真”,表达式的值为1。3)逻辑运算的规则:(2)或运算
17、
18、参与运算的两个量只要有一个为真(非0),结果就为真(值为1)。两个量都为假(值为0)时,结果为假(值为0)。例如:5>0
19、
20、5>8,结果也就为真(值为1)。(3)非运算!参与运算量为真(非0)时,结果为假(值为0);参与运算量为假(值为0)时,结果为真(值为1)。例如:!(5>0)的结
21、果为假,即为0。2.逻辑表达式逻辑表达式的一般形式为:表达式&&表达式表达式
22、
23、表达式!表达式逻辑表达式的值:各种逻辑运算的最后值,以“1”和“0”分别代表“真”和“假”。3)逻辑运算的规则:main(){charc='k';inti=1,j=2,k=3;floatx=3e+5,y=0.85;printf("%d,%d",!x*!y,!!!x);printf("%d,%d",x
24、
25、i&&j-3,i26、27、i+j+k);}分析下段程序的输出结果0,0128、,00,1在逻辑表达式的求解中,并不是所有的逻辑运算符都执行,只有在必须执行下一个逻辑运算符才能求出表达式的值时,才执行下一个运算符。(1)表达式1&&表达式2&&……a+b>0&&b++(a=1,b=-2)如果:表达式1的值是0,无论表达式2的值是什么,整个表达式的值都为0,因此表达式2就不计算了。(2)表达式129、30、表达式231、32、……a+b>033、34、b++(a=1,b=2)如果:表达式1的值是1,无论表达式2的值是什么,整个表达式的值都为1,因此表达式2就不计算了。说明:(3)若a=1,b=2,c=3,d=4,m和n原值为1(m=a>b)&&35、(n=c>d)则m=0,而n仍保持原值(4)‘c’&&‘d’逻辑运算符两侧,可以是任意类型的数据类型说明:1.if语句有三种基本形式1)第一种形式,基本形式:if(表达式)语句;如果表达式的值为真,则执行其后语句,否则不执行该语句。语句表达式非00if语句voidmain(){inta,b,max;scanf("%d,%d",&a,&b);max=a;if(max36、,b;scanf("%d,%d",&a,&b);if(a>b)printf("max=%d",a);elseprintf("max=%d",b);}例:语句1表达式非00
26、
27、i+j+k);}分析下段程序的输出结果0,01
28、,00,1在逻辑表达式的求解中,并不是所有的逻辑运算符都执行,只有在必须执行下一个逻辑运算符才能求出表达式的值时,才执行下一个运算符。(1)表达式1&&表达式2&&……a+b>0&&b++(a=1,b=-2)如果:表达式1的值是0,无论表达式2的值是什么,整个表达式的值都为0,因此表达式2就不计算了。(2)表达式1
29、
30、表达式2
31、
32、……a+b>0
33、
34、b++(a=1,b=2)如果:表达式1的值是1,无论表达式2的值是什么,整个表达式的值都为1,因此表达式2就不计算了。说明:(3)若a=1,b=2,c=3,d=4,m和n原值为1(m=a>b)&&
35、(n=c>d)则m=0,而n仍保持原值(4)‘c’&&‘d’逻辑运算符两侧,可以是任意类型的数据类型说明:1.if语句有三种基本形式1)第一种形式,基本形式:if(表达式)语句;如果表达式的值为真,则执行其后语句,否则不执行该语句。语句表达式非00if语句voidmain(){inta,b,max;scanf("%d,%d",&a,&b);max=a;if(max
36、,b;scanf("%d,%d",&a,&b);if(a>b)printf("max=%d",a);elseprintf("max=%d",b);}例:语句1表达式非00
此文档下载收益归作者所有