第4章选择结构的程序设计

上传人:今*** 文档编号:106226510 上传时间:2019-10-14 格式:PPT 页数:39 大小:603KB
返回 下载 相关 举报
第4章选择结构的程序设计_第1页
第1页 / 共39页
第4章选择结构的程序设计_第2页
第2页 / 共39页
第4章选择结构的程序设计_第3页
第3页 / 共39页
第4章选择结构的程序设计_第4页
第4页 / 共39页
第4章选择结构的程序设计_第5页
第5页 / 共39页
点击查看更多>>
资源描述

《第4章选择结构的程序设计》由会员分享,可在线阅读,更多相关《第4章选择结构的程序设计(39页珍藏版)》请在金锄头文库上搜索。

1、4.1 条件选择结构(if语句) 4.2 开关选择结构(switch语句) 4.3 选择结构程序设计举例,第4章 选择结构的程序设计,三种基本控制结构的流程图,顺序结构,Y,N,An,P,P,A,B,2019/10/14,3,学习重点: 1. if语句的格式及执行过程 2. if语句的嵌套(else与if的匹配原则) 3. switch语句的格式及执行过程 学习难点: 1. if语句的嵌套,2019/10/14,4,4.1.1 if语句的两种形式 1.if语句的基本形式if-else 也称双选择结构,它的形式是: if(表达式) 语句1 else 语句2,如: if (xy) printf(“

2、%d“,x); else printf(“%d“,y);,4.1 条件选择结构,2019/10/14,5,表达式,语句1,语句2,真(非 0),假(0),2019/10/14,6,说明: (1)if语句中的控制表达式应该用括号括起来。 (2)if后面的表达式可以是任意类型的表达式,其值将被作为逻辑值使用,非0即为真,0即为假,不限于是关系表达式或逻辑表达式。,4.1 条件选择结构,【例4.1】 输入年份并判断和显示该年是否为闰年。 (year%4=0 ,4.1 条件选择结构,8,【例4.2】 输入两个整数,如果两个数的值不相等,则交换并输出两个数,否则输出“equal” 。 #include

3、void main() int m,n,temp; printf(“please input two numbers:n“); scanf(“%d %d“, ,4.1 条件选择结构,2019/10/14,9,说明: (3)条件语句中,语句1和语句2可以是任意一条语句,也可以是多条语句组成的复合语句。 即:语句1或语句2由多条语句组成时,要用一对“”将这多条语句括起来形成语法上的一条语句复合语句。,4.1 条件选择结构,2019/10/14,10,说明: (4)语句1或语句2也可以是空语句,例如: if(m!=n) ; else printf(“equal“);,4.1 条件选择结构,2019/

4、10/14,11,说明: (5)if语句的书写格式是自由的,可以把if-else写在一行,也可以写成多行。例如: 写成一行: if(ab) c=a;else c=b; 多行形式: if(ab) c=a; else c=b;,4.1 条件选择结构,2019/10/14,12,4.1.1 if语句的两种形式 2.if语句的简单形式if 也称单选择结构,它的形式是: if(表达式) 语句 如: if (xy) printf(“yesn“);,4.1 条件选择结构,2019/10/14,13,4.1 条件选择结构,2019/10/14,14,【例4.3】输入任意一个整数,然后输出这个整数的绝对值。 #

5、include void main() int a,b; printf(“input a integer:“); scanf(“%d“, ,4.1 条件选择结构,请看习题P93 二-1,2019/10/14,15,4.1.2 if语句的嵌套 在一个条件分支if语句中还可以包含一个或多个if语句,称为条件分支的嵌套。 if(x0) if(x10) y=x-10; else y=x+10; ,4.1 条件选择结构,2019/10/14,16,1if语句嵌套的形式一 if(表达式1) if(表达式2) 语句1 else 语句2 else 语句3,2if语句嵌套的形式二 if(表达式1) 语句1 el

6、se if(表达式2) 语句2 else 语句3,4.1 条件选择结构,if(表达式) if(表达式) 语句 else 语句,else与if的匹配原则: 从最内层开始,else总是与它上面相邻最近并且未匹配else的if配对。 但else不与其前复合语句中的if匹配。,4.1 条件选择结构,if(表达式) if(表达式) 语句 else 语句,18,如: if (x1) if (x10) y=x-10; else y=x+10; 再如: if (x1) if (x10) y=x-10; else y=x+10;,4.1 条件选择结构,#include void main() int x,y;

7、printf(“please input x:n“); scanf(“%d“, ,【例 4.4】编写程序,输入一个x,按照函数功能输出y。,if的嵌套适用于进一步做条件判断的情况。,#include void main() int x,y; printf(“please input x:n“); scanf(“%d“, ,【例 4.4】编写程序,输入一个x,按照函数功能输出y。,if的嵌套适用于进一步做条件判断的情况。,2019/10/14,21,复习6,1、if语句的两种形式?有何要注意的问题? 2、在嵌套的if语句中,else与if的匹配原则?,22,3. if语句嵌套的形式三if-els

8、e-if if-else-if形式是if语句嵌套的一种特殊形式,它经常用于多分支处理。它的一般形式为: if(表达式1) 语句1 else if (表达式2) 语句2 else if (表达式n) 语句n else 语句n+1,4.1 条件选择结构,23,4.1 条件选择结构,#include “stdio.h“ void main() char ch; printf(“input a character:“); ch=getchar(); if(ch=0 ,【例4.6】 编写一个程序,要求输入一个字符并判断它是字母字符、数字字符、还是其他字符。,4.2 开关选择结构,用来解决多分支选择的问题

9、,用switch语句来实现。,4.2.1 switch语句形式 switch(表达式) case 常量表达式1: 语句组1 case 常量表达式2: 语句组2 case 常量表达式n: 语句组n default : 语句组n+1 ,【例4.8】 输出英文单词。 #include void main() int a; printf(“input integer number:“); scanf(“%d“, ,break;,break;,break;,使用break语句的switch语句形式为: switch(表达式) case 常量表达式1: 语句组1 case 常量表达式2: 语句组2 cas

10、e 常量表达式n: 语句组n default : 语句组n+1 ,4.2 开关选择结构,【例4.9】 利用break形式对例4.8的程序修改如下: #include void main() int a; printf(“input integer number:“); scanf(“%d“, ,关键:找入口,看出口。,2019/10/14,29,注意: 1)switch后面的表达式结果必须是整型(或者是字符型)数据。 2)每个case后面必须是整型(或者字符型)的常量或表达式。 3)在同一个switch语句中,每一个case后的常量表达式的值应互不相同,不允许case后面出现两个或两个以上的相

11、同值,各个case出现的顺序不影响程序的执行。,4.2 开关选择结构,2019/10/14,30,4)switch 语句组中可以省略default语句。,5)如果语句组是多条语句,可以不用花括号括起来,程序会自动顺序执行所匹配的case后面的所有语句。 注意的是,语句组也可以没有语句,如果没有,就顺序向下执行后面的case语句。,4.2 开关选择结构,31,【例4.11】 判别某考试成绩等级是否大于60分。 #include void main() char grade; printf(“Input the grade:“); scanf(“%c“, ,各个case和default的出现次序可

12、以任意,但必须作适当处理,否则将会影响执行结果。 switch(grade) default: printf(“errorn“); break; case A: case B: case C: printf(“60n“); break; case D: printf(“60n“); break; ,4.2.2 switch语句的嵌套 如果在某个case后面的语句组中又包含了一个switch语句,则称这种结构为switch语句的嵌套结构。,4.2 开关选择结构,【例4.12】 switch语句嵌套结构举例。 #include “stdio.h“ void main() int x=1,y=0,a

13、=0,b=0; switch(x) case 1: switch(y) case 0: a+; break; case 1: b+; break; case 2: a+; b+; break; case 3: a+; b+; printf(“a=%d,b=%dn“,a,b); ,2019/10/14,35,【例 4.14】设计输入年、月,输出该月天数的程序。 分析: 每年的 1、3、5、7、8、10、12月,每月有31天。 4、6、9、11月,每月有30天。 2月闰年29天,平年28天。,4.3 选择结构程序设计举例,2019/10/14,36,#include void main() int

14、 year,month,days; printf(“input year,month=?n“); scanf(“%d,%d“,case 4: case 6: case 9: case 11:days=30; break; case 2: if(year%4=0) ,运行输入: input year,month=? 1994,8 运行结果: year=1994,month=8,days=31 再次运行输入: input year,month=? 1994,2 再次运行结果: year=1994,month=2,days=28,2019/10/14,37,小结 1.控制表达式的正确使用 (1)控制

15、表达式并不局限于只是使用关系表达式或逻辑表达式。任何合法的C语言表达式都可以作为控制表达式,只要表达式的值为非零(即代表真),无论是正数还是负数,只要不为零就代表真。 (2)对于同一个控制功能可以有多种多样的表示形式,使得这些控制结构虽灵活但不易掌握,因此要求有较强的逻辑判断和分析能力。 (3)由于C语言中控制功能可以是任意表达式,因此,只有正确掌握包括关系运算符和逻辑运算符在内的各种运算符的优先关系才能写出正确的表达式。注意,即使关系运算符本身的优先级也不相同,例如: a=bc相当a=(bc),而不是(a=b)c。,2019/10/14,38,2.if语句及嵌套结构 在C语言中,常用的if语句是以下两种形式: 形式1: if(表达式) 语句 形式2: if(表达式) 语句1 else 语句2 if后面的表达式可以是任意表达式。if语句中可以再嵌套if语句,根据C语言规定,在嵌套的if语句中,else子句总是与前面最近的,不带else的if相匹配。if语句中的控制表达式应该用括号括起来。若if子句或else子句由多个语句构成,则应该构成复合语句。,2019/10/14,39,3.switch语句 掌握switch语句的执行过程和使用switch语句时的注意事项。 (1)每一个case后的常量表达式的值应当互不相同。 (2)switch

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 高等教育 > 大学课件

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号