第四讲选择程序设计.ppt

上传人:李司机 文档编号:4103775 上传时间:2023-04-04 格式:PPT 页数:17 大小:327.50KB
返回 下载 相关 举报
第四讲选择程序设计.ppt_第1页
第1页 / 共17页
第四讲选择程序设计.ppt_第2页
第2页 / 共17页
第四讲选择程序设计.ppt_第3页
第3页 / 共17页
第四讲选择程序设计.ppt_第4页
第4页 / 共17页
第四讲选择程序设计.ppt_第5页
第5页 / 共17页
点击查看更多>>
资源描述

《第四讲选择程序设计.ppt》由会员分享,可在线阅读,更多相关《第四讲选择程序设计.ppt(17页珍藏版)》请在三一办公上搜索。

1、第四讲 选择结构程序设计,选择条件的表示;选择的实现语句;,if(条件表达式)语句组一else 语句组二,关系运算及其表达式,逻辑运算及其表达式,if语句,switch语句,重点:,根据所指定的条件是否满足,决定从给定的操作中选择其一执行,关系运算及其表达式,所谓“关系运算”实际上就是“比较运算”,即将两个数据进行比较,判定两个数据是否符合给定的关系。关系运算符1关系运算符C语言提供6种关系运算符:(大于),=(大于或等于),=(等于),!=(不等于)注意:在语言中,“等于”关系运算符是双等号“=”,而不是单等号“=”(赋值运算符)。,注:由于语言没有逻辑型数据,所以用整数“”表示“逻辑真”,

2、用整数“”表示“逻辑假”。关系表达式的值是逻辑值。,关系表达式1关系表达式的概念所谓关系表达式是指,用关系运算符将两个表达式连接起来,进行关系运算的式子。例如,下面的关系表达式都是合法的:ab,a+bc-d,(a=3)=b,(ab)=(bc),例如,假设num1=3,num2=4,num3=5,则:,(1)num1num2的值=0,(2)(num1num2)!=num3的值=1,(3)num1num2num3的值=1,(4)(num1num2)+num3的值=6,再次强调:C语言用整数“1”表示“逻辑真”,用整数“0”表示“逻辑假”。所以,关系表达式的值,还可以参与其它种类的运算,例如算术运算

3、、逻辑运算等。,逻辑运算及其表达式,!逻辑非(相当于“否定”),关系表达式只能描述单一条件,例如“x=0”。如果需要描述“x=0”、同时“x10”,该这么办呢?这就要借助于逻辑表达式了。,逻辑运算符及其运算规则,&逻辑与(相当于“同时”),|逻辑或(相当于“或者”),例如,假定x=5,则(x=0)&(x5)的值为“假”,!x的值为“假”。,运算规则,1)&当且仅当两个运算量的值都为“真”时,运算结果为“真”,否则为“假”。,2)|当且仅当两个运算量的值都为“假”时,运算结果为“假”,否则为“真”。,3)!当运算量的值为“真”时,运算结果为“假”;当运算量的值为“假”时,运算结果为“真”,与(&

4、),或(|),非(!),假,非 真,例如,下面的表达式都是逻辑表达式:(x=0)&(x5)、!(x=0)、a+bc&b=c,逻辑表达式1逻辑表达式的概念 所谓逻辑表达式是指,用逻辑运算符将1个或多个表达式连接起来,进行逻辑运算的式子。,?上述表达式中也用到了关系运算符why不叫关系表达式呢?,对于一个表达式它最后一步进行的是什么运算就叫什么表达式。,例如,假设num=12,则:!num的值=,num=1 num31的值=1。,对于逻辑与运算,如果第一个操作数被判定为“假”,系统不再判定或求解第二操作数。对于逻辑或运算,如果第一个操作数被判定为“真”,系统不再判定或求解第二操作数。例如,假设n1

5、、n2、n3、n4、x、y的值分别为1、2、3、4、1、1,则求解表达式“(x=n1n2)&(y=n3n4)”后,x的值变为,而y的值不变,仍等于1。,逻辑运算符两侧的操作数,除可以是和非的整数外,也可以是其它任何类型的数据,如实型、字符型等。如:a&3.5的值=1;,说明,if语句,if语句的一般格式:if(表达式)语句组1;else 语句组2;,注意:(1)if语句中的“表达式”必须用“(”和“)”括起来。(2)else子句(可选)是if语句的一部分,必须与if配对使用,不能单独使用。(3)当if和else下面的语句组,仅由一条语句构成时,也可不使用复合语句形式(即去掉花括号)。,if语句

6、的执行过程(1)缺省else子句时(即:if(表达式)语句;),该语句的功能是:首先计算表达式的值然后判断其值是否为非零(真),若为非零(真),则执行语句组。否则直接转向执行下一条。其执行过程如右图所示。,表达式,真,语句,假,For example:输入一个数,若x为大于10的数,则y=x+10,并输出y的值。,源程序清单如下:#includemain()int x,y;printf(“n input a integer to x:”);scanf(“%d”,(2)指定else子句时(即:if(表达式)语句1;else 语句2;),表达式,真,语句1,假,语句2,For example:判断

7、一个数是奇数还是偶数,并把结果显示出来。,#include“stdio.h”main()int x;printf(“n please input a integer to x:”);scanf(“%d”,1、在if语句中又完全包含了一个或多个if语句称为if语句的嵌套。2、if语句嵌套时,else子句与在它上面、距它最近、且尚未匹配的if配对一般格式为:,表达式1,表达式2,表达式3,表达式n,语句1,语句3,语句n,语句n+1,语句2,真,真,真,真,假,假,假,假,if语句的嵌套与嵌套匹配原则,if(表达式一)语句一else if(表达式二)语句二 else if(表达式三)语句三 els

8、e.,For example:某年高考分数规定。600分以上入取第一本,550分以上录取第二本,500分以上录取第三本,450分以上录取专科,否则不能录取。输入高考成绩,要求输出应入什么大学。,#includestdio.hmain()int score;printf(n please input your score:);scanf(%d,switch语句,switch语句的一般形式:switch(表达式)case 常量表达式1:语句组1;break;case 常量表达式2:语句组2;break;.case 常量表达式:语句组n;break;default:语句组n+1;break;,前面介

9、绍的if语句,常用于两情况的选择结构,要表示两种以上条件的选择结构,则要用if语句的嵌套形式,但如果嵌套的if语句比较多时,程序可读性就差。因此,C语言提供了switch语句来直接实现多种情况的选择结构。,执行过程如下图,switch语句的一般形式:switch(表达式)case 常量表达式1:语句组1;break;case 常量表达式2:语句组2;break;.case 常量表达式:语句组n;break;default:语句组n+1;break;,For example:某幼儿园只收2至6岁的小孩。23岁入小班,4岁入中班,56岁入大班。输入年龄,要求输出应入什么班。,Main()int a

10、ge;Printf(“n input a age:”);Scanf(“%d”,(1)每个case后面“常量表达式”的值,必须各不相同,否则会出现相互矛盾的现象(即对表达式的同一值,有两种或两种以上的执行方案)。(2)case后面的常量表达式仅起语句标号作用,并不进行条件判断和错误检测。系统一旦找到入口标号,就从此标号开始执行,不再进行标号判断,所以必须加上break语句,以便结束switch语句。(3)各case及default子句的先后次序,不影响程序执行结果。(4)用switch语句实现的多分支结构程序,完全可以用if语句或if语句的嵌套来实现。(课后去实现)。,思考题:如果去掉程序中的所有break语句,且输入的年龄为2,输出会如何?,相关说明,本讲结束Thank you,

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 生活休闲 > 在线阅读


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号