第4章 选择程序设计课件

上传人:我*** 文档编号:141149411 上传时间:2020-08-04 格式:PPT 页数:56 大小:355.50KB
返回 下载 相关 举报
第4章 选择程序设计课件_第1页
第1页 / 共56页
第4章 选择程序设计课件_第2页
第2页 / 共56页
第4章 选择程序设计课件_第3页
第3页 / 共56页
第4章 选择程序设计课件_第4页
第4页 / 共56页
第4章 选择程序设计课件_第5页
第5页 / 共56页
点击查看更多>>
资源描述

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

1、 C语言程序设计,第 4 讲,第4章选择程序设计,理解C语言中各类控制语句的执行过程、功能和使用方法。 掌握if语句的3种形式、if和else配对规则及if语句的嵌套。 能正确地使用switch语句设计多分支选择结构。,目标要求,第4章选择程序设计,条件选择语句if语句 if语句的应用举例 多分支选择语句switch结构 switch语句应用举例 语句标号和goto语句 课后作业,讲课提纲,第4章选择程序设计,4.1.1 if语句的三种形式 4.1.2 嵌套的if语句 4.1.3由条件表达式构成的选择结构,4.1 if语句,第4章选择程序设计,1、标准if-else结构 ifelse构造了一种

2、二路分支选择结构,是一种最基本的选择结构。 【格式】 if (表达式) 语句1 else 语句2 或: if (表达式) 语句1 else 语句2 例如:if (xy) printf(max=d,x); else printf(max=d,y);,4.1.1 if语句的三种形式,第4章选择程序设计,例4.1 键盘输入两个整数分别赋给x和y,编程输出其中的大数。,4.1.1 if语句的三种形式,第4章选择程序设计,例4.1 键盘输入两个整数分别赋给x和y,编程输出其中的大数。 main() int x,y; printf(Enter x ,4.1.1 if语句的三种形式,第4章选择程序设计,例4

3、.2 键盘输入一个实数,要求输出它的绝对值。,4.1.1 if语句的三种形式,第4章选择程序设计,例4.2 键盘输入一个实数,要求输出它的绝对值。 编写程序如下: main() double x; scanf(%lf, ,4.1.1 if语句的三种形式,第4章选择程序设计,2、缺省else子句的if结构(又称不平衡if结构 ) 【格式】 if (表达式) 语句 或: If (表达式) 语句 例如: if (xy) printf(d,x);,4.1.1 if语句的三种形式,第4章选择程序设计,例4.3 输入两个数,分别放入x和y中,若两数不相等,则输出其中的大数;若两数相等,则输出字符串“x=y

4、”和x的值。,4.1.1 if语句的三种形式,第4章选择程序设计,例4.3 输入两个数,分别放入x和y中,若两数不相等,则输出其中的大数;若两数相等,则输出字符串“x=y”和x的值。 main() int x,y; printf(Enter x ,4.1.1 if语句的三种形式,第4章选择程序设计,3、ifelse if阶梯结构 【格式】 if (表达式1) 语句1 else if (表达式2) 语句2 else if (表达式3) 语句3 else if (表达式n-1) 语句n-1 else 语句n,4.1.1 if语句的三种形式,第4章选择程序设计,例4.4编写程序,根据输入的学生成绩,

5、给出相应的等级。假设等级划分如下: 90100分 等级为A; 8089分 等级为B; 7079分 等级为C; 6069分 等级为D; 059分 等级为E。,4.1.1 if语句的三种形式,第4章选择程序设计,main() int score; printf(Enter score: ); scanf(%d, ,4.1.1 if语句的三种形式,第4章选择程序设计,该例题中的阶梯结构也可采取按成绩由低到高、分段筛选输出的设计方法。 main() int score; printf(Enter score: ); scanf(%d, ,4.1.1 if语句的三种形式,第4章选择程序设计,当然该例题还

6、可采用五个if缺省结构设计如下: 程序(三) main() int score; printf(Enter score: ); scanf(%d, ,4.1.1 if语句的三种形式,第4章选择程序设计,4、 三种形式if语句的说明 (1) 三种形式的if语句中在if后面都有“表达式”,一般为 逻辑表达式或关系表达式。例如,if(a=b else printf(%f,-x); 这是由于分号是C语句中不可缺少的部分,这个分号是if语句中的内嵌语句所要求的。如果无此分号,则出现语法错误。但应注意,不要误认为上面是两个语句(if语句和else语句)。它们都属于同一个if语句。else子句不能作为语句单

7、独使用,它必须是if语句的一部分,与if配对使用。,4.1.1 if语句的三种形式,第4章选择程序设计,(3) 在if和else后面可以只含一个内嵌的操作语句(如上例),也可以有多个操作语句,此时用花括号“”将几个语句括起来成为一个复合语句。如:,4.1.1 if语句的三种形式,第4章选择程序设计,(3) 在if和else后面可以只含一个内嵌的操作语句(如上例),也可以有多个操作语句,此时用花括号“”将几个语句括起来成为一个复合语句。如: if(abc printf(area=6.2f,area); else printf(it is not a trilateral);,4.1.1 if语句

8、的三种形式,第4章选择程序设计,if子句和else子句中可以是任意合法的C语句,因此当然也可以是if语句,通常称此为嵌套的if语句。内嵌的if语句既可以嵌套在if子句中,也可以嵌套在else子句中。,4.1.2 嵌套的if语句,第4章选择程序设计,1、 在if子句中嵌套具有else子句的if语句 【格式】 if (表达式1) if (表达式2) 语句1 else 语句2 else 语句3 即:当表达式1的值为非0时,执行内嵌的ifelse语句;当表达式1的值为0时,执行语句3。,4.1.2 嵌套的if语句,第4章选择程序设计,2、 在if子句中嵌套不含else子句的if语句 【格式】 if (

9、表达式1) if (表达式2) 语句1 else 语句2,4.1.2 嵌套的if语句,第4章选择程序设计,3. 在else子句中嵌套if语句 语句形式有如下两种: (1)嵌套if语句带有else: if (表达式1) 语句1 else if (表达式2) 语句2 else 语句3 或写成: if (表达式1) 语句1 else if (表达式2) 语句2 else 语句3,4.1.2 嵌套的if语句,第4章选择程序设计,(2)嵌套if语句不带else: if (表达式1) 语句1 else if(表达式2) 语句2 或写成: if (表达式1) 语句1 else if (表达式2) 语句2 由

10、以上两种语句形式可以看到,内嵌在else子句中的if语句无论是否有else子句,在语法上都不会引起误会,因此建议读者在设计嵌套的if语句时,尽量把内嵌的if语句嵌在else子句中。如果不断在else子句中嵌套if语句可形成多层嵌套。如:,4.1.2 嵌套的if语句,第4章选择程序设计,if (表达式1) 语句1 else if (表达式2) 语句2 else if (表达式3) 语句3 else if (表达式4) 语句4 else 语句n 或写成: if (表达式1) 语句1 else if (表达式2) 语句2 else if (表达式3) 语句3 else if (表达式n-1)语句n-

11、1 else 语句n,4.1.2 嵌套的if语句,第4章选择程序设计,前面在介绍条件运算符和条件表达式时,出现过类似于“max=(ab)?ab;”的命令,这种由条件表达式组成的赋值语句事实上就是一个ifelse语句的简写。相当于: if(ab)max=a; elsemax=b; 推广开来,若在ifelse语句中,当表达式为“真”和“假”时,都只执行一个赋值语句且给同一个变量赋值时,均可以用简单的条件运算符来处理。,4.1.3. 由条件表达式构成的选择结构、,第4章选择程序设计,例4.5输入一个字符,判别它是否大写字母,如果是,将它转换成小写字母;如果不是,不转换。然后输出最后得到的字符。 程序

12、如下: main() char ch; scanf(“%c”, ,4.1.3. 由条件表达式构成的选择结构、,第4章选择程序设计,例4.6 从键盘输入三个整数,要求将输入的数据按由小到大排序后输出。 设三个变量a、b和c,分别存放键盘输入的三个整数,算法描述为: 首先输入三个整数,然后: 如果 a b 将a和b对换 (a将是a,b中的小者) 如果 a c 将a和c对换 (a将是a,c中的小者,因此a是三者中最小者) 如果 b c 将b和c对换 (b将是b,c中的小者,也是三者中次小者) 最后顺序输出a,b,c即可。,4.2 if语句应用举例,第4章选择程序设计,main() int a,b,c

13、,t; printf(Input a b c: ); scanf(%d%d%d, ,4.2 if语句应用举例,第4章选择程序设计,例4.7 写程序,判断某一年是否闰年。 闰年的条件是: 能被4整除,但不能被100整除的年份都是闰年,如1996年,2004年是闰年; 能被100整除,又能被400整除的年份是闰年。如1600年、2000年是闰年。不符合这两个条件的年份不是闰年。,4.2 if语句应用举例,第4章选择程序设计,方法一、假设用整型变量year来代表年份,综合运用前面学过的运算符与表达式知识,我们可以把闰年条件概括为如下一个逻辑表达式: year%4=0 scanf(%d, ,4.2 i

14、f语句应用举例,第4章选择程序设计,方法二、采用ifelse if阶梯结构。另设标志变量leap=1代表闰年;leap=0代表非闰年。设计程序如下: main() int year,leap; scanf(%d, ,4.2 if语句应用举例,第4章选择程序设计,方法三、采用多层if嵌套结构设计。该方法虽然比较复杂,但可以帮助读者更好的理解嵌套if语句的使用规则和设计技巧(尤其是缩排格式)。我们用图4.3来表示判别闰年的算法。仍以标志变量leap=1代表闰年;leap=0代表非闰年。最后判断leap是否为1(真),若是,则输出“闰年”信息。,4.2 if语句应用举例,第4章选择程序设计,main

15、() int year,leap; scanf(%d, ,4.2 if语句应用举例,第4章选择程序设计,Switch语句是多分支选择语句。用 来实现多分支选择结构。 【格式】 switch (表达式) case常量表达式1:语句1 case常量表达式2:语句2 case常量表达式n:语句n default :语句n1 ,4.3 switch语句,第4章选择程序设计,例4.8用switch语句编程实现如下功能:输入学生成绩的等级(A、B、C、D、E),打印出对应的百分制分数段。 a:90100 B:8089 C:7079 D:6069 E:059 初步编写程序如下:,4.3 switch语句,第

16、4章选择程序设计,main() char grade; printf(Please input grade:); scanf(%c, ,4.3 switch语句,第4章选择程序设计,switch语句也可以嵌套。即可以将switch语句作为一个外部switch语句的目标语句部分,这样,即使内部switch语句和外部switch语句用相同的case常量,也不会产生冲突。 例4.9 嵌套switch语句的使用。 程序如下,4.3 switch语句,第4章选择程序设计,#include main() char ch1,ch2; printf(1)Input A or B :); ch1=getchar(); switch(ch1) case A: printf(This A is part of outer switch.n)

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

最新文档


当前位置:首页 > 办公文档 > PPT模板库 > PPT素材/模板

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