版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、 www.BJXY.cnC语言程序设计教学课题组语言程序设计教学课题组 滨江学院滨江学院第七章 分支结构程序设计l7.1 7.1 分支结构概述分支结构概述l7.2 if7.2 if语句语句l7.3 7.3 多分支结构多分支结构l7.4 7.4 单分支结构单分支结构l7.5 7.5 语句标号和语句标号和gotogoto语句语句l7.6 7.6 综合程序举例综合程序举例 滨江学院滨江学院第七章 分支结构程序设计1.1. 分支结构的概念:根据给分支结构的概念:根据给定条件是否成立而决定执定条件是否成立而决定执行不同步骤的算法结构。行不同步骤的算法结构。2.2. 基本模式:双分支结构和基本模式:双分支
2、结构和单分支结构。单分支结构。3.3. 执行到分支结构时,在两执行到分支结构时,在两条可能的路径中,根据条条可能的路径中,根据条件是否成立而选择件是否成立而选择其中一其中一条条执行。执行。7.1 分支结构概述双分支结构双分支结构单分支结构单分支结构 滨江学院滨江学院第七章 分支结构程序设计 在现实生活中,需要进行判断和选择的情况是很多的,例如: 上完体育课,上完体育课,如果如果是上午最后一节,下课是上午最后一节,下课后去食堂吃饭;后去食堂吃饭;否则否则, ,进进教室上课。教室上课。 如果考试不及格,要补考如果考试不及格,要补考 如果遇到红灯,要停车等待如果遇到红灯,要停车等待 身高低于身高低于
3、1.31.3的儿童乘地铁的儿童乘地铁免票免票7.1 分支结构概述 滨江学院滨江学院第七章 分支结构程序设计7.2 if语句 C语言的语言的if语句有以下两种基本形式:语句有以下两种基本形式:(1 1)if(if(表达式表达式) ) 语句语句 (2 2)if(if(表达式表达式) ) 语句语句1 1 else else 语句语句2 2/*含含else子句的子句的if语句语句*/*不含不含else子句的子句的if语句语句*/ 滨江学院滨江学院第七章 分支结构程序设计7.2.1 if语句 if(表达式表达式) 语句语句 滨江学院滨江学院第七章 分支结构程序设计 【例【例7-1】输入两个数,】输入两个
4、数,分别放入分别放入x和和y中,要求中,要求输出其中的大数。输出其中的大数。 7.2.1 if语句#includemain( )int x, y, max;printf(Enter x&y: );scanf(%d%d,&x,&y);printf(x=%d,y=%dn,x,y);max=x;if(xbab则将则将a a与与b b进行值交换,使得进行值交换,使得a a值为值为a a和和b b中的较小值;中的较小值; 接着将接着将a a和和c c进行比较,若进行比较,若acac则将则将a a与与c c进行值交换,此进行值交换,此时使得时使得a a值为值为a a 、b b和和c
5、 c中的最小值;中的最小值; 最后将最后将b b和和c c进行比较,若进行比较,若bcbc则将则将b b与与c c进行值交换,此进行值交换,此时使得时使得b b值为值为b b和和c c中的较小值,且中的较小值,且c c值为最大值。值为最大值。7.2.1 if语句 滨江学院滨江学院第七章 分支结构程序设计7.2.1 if语句#includevoid main( ) int a, b, c, t;printf(input a,b,c:);scanf(%d%d%d,&a,&b,&c);printf(a=%d,b=%d,c=%dn,a,b,c);if (ab) t=a; a=b
6、; b=t; if (ac) t=a; a=c; c=t; if (bc) t=b; b=c; c=t; printf(%d,%d,%dn,a,b,c);【程序分析【程序分析】 以上程序无论给以上程序无论给a a、b b和和c c输入什么数,输入什么数,最后总是把最小数放在最后总是把最小数放在a a中,把最大数中,把最大数放在放在c c中。当然,此题稍做变化,如不中。当然,此题稍做变化,如不改变输入改变输入a a、b b、c c的值,而通过改变输的值,而通过改变输出的出的a a、b b、c c的顺序来实现对输入数据的顺序来实现对输入数据的有序输出;请自行考虑,并编程实的有序输出;请自行考虑,并
7、编程实现。现。 滨江学院滨江学院第七章 分支结构程序设计7.2.2 ifelse语句if(if(表达式表达式) ) 语句语句1 1 else else 语句语句2 2【注意【注意】 elseelse不是一条独立不是一条独立的语句,它只是的语句,它只是ifif语句语句的一部分。在程序中的一部分。在程序中elseelse必须与必须与ifif配对,共配对,共同组成一条同组成一条ififelseelse语语句。句。 滨江学院滨江学院第七章 分支结构程序设计 【例【例7-3】 输入一个数,判别它是否能被输入一个数,判别它是否能被3整除。若能被整除。若能被3整除,输出整除,输出YES;不能被;不能被3整除
8、,输出整除,输出NO。7.2.2 ifelse语句#includemain() int n ;printf(input n:); scanf(%d,&n);if(n%3=0) /*判断判断n能否被能否被3整除整除*/ printf(n=%d YESn,n);else printf(n=%d NOn,n); 滨江学院滨江学院第七章 分支结构程序设计7.3 多分支结构 双分支结构:上双分支结构:上完体育课,完体育课,如果如果是上午最后一节,是上午最后一节,下课后去食堂吃下课后去食堂吃饭;饭;否则否则,进教,进教室上课。室上课。 滨江学院滨江学院第七章 分支结构程序设计7.3.1嵌套的if语
9、句 if子句和子句和else子句中可以是任意合法的子句中可以是任意合法的C语句,语句,因此当然也可以是因此当然也可以是if语句,通常称此为嵌套语句,通常称此为嵌套的的if语句。语句。 内嵌的内嵌的if语句既可以嵌套在语句既可以嵌套在if子句中,也可子句中,也可以嵌套在以嵌套在else子句中。具体形式有以下三种:子句中。具体形式有以下三种:一一在在if if子句中嵌套具有子句中嵌套具有elseelse子句的子句的if if语句语句if(表达式表达式1) if(表达式表达式2) 语句语句1 else 语句语句2else 语句语句3 滨江学院滨江学院第七章 分支结构程序设计二二 在在if if子句中
10、嵌套不子句中嵌套不含含elseelse子句的子句的if if语句语句if(表达式表达式1) if(表达式表达式2) 语句语句1 else语句语句2【注意】在【注意】在ifif子句中的一对花括号不可缺少。因为子句中的一对花括号不可缺少。因为C C语言语言的语法规定:的语法规定:elseelse子句总是与前面最近的不带子句总是与前面最近的不带elseelse的的ifif相结合,与书写格式无关。因此,以上语句如果写成:相结合,与书写格式无关。因此,以上语句如果写成:if(表达式表达式1)if(表达式表达式2) 语句语句1else语句语句2if(表达式表达式1)if(表达式表达式2) 语句语句1els
11、e 语句语句2实质上等价于实质上等价于7.3.1嵌套的if语句 滨江学院滨江学院第七章 分支结构程序设计三三 在在elseelse子句中嵌套子句中嵌套if if语句语句7.3.1嵌套的if语句if(表达式表达式1) 语句语句1elseif(表达式表达式2) 语句语句2 else 语句语句3if(表达式表达式1) 语句语句1else if(表达式表达式2) 语句语句2if(表达式表达式1) 语句语句1else if(表达式表达式2) 语句语句2 else 语句语句3if(表达式表达式1) 语句语句1else if(表达式表达式2) 语句语句2(1)内嵌的if语句带有else: (2)内嵌的if语
12、句不带else:或写成: 或写成:由以上两种语句形式可以看到,内嵌在由以上两种语句形式可以看到,内嵌在elseelse子句中的子句中的ifif语句语句无论是否有无论是否有elseelse子句,在语法上都不会引起误会,因此建议子句,在语法上都不会引起误会,因此建议在设计嵌套的在设计嵌套的ifif语句时,尽量把内嵌的语句时,尽量把内嵌的ifif语句嵌在语句嵌在elseelse子句子句中。中。 滨江学院滨江学院第七章 分支结构程序设计 在在else子句中嵌套子句中嵌套if语句可形成多层嵌套,语句可形成多层嵌套,这时形成了层次式的嵌套这时形成了层次式的嵌套if语句语句 if(表达式表达式1) 语句语句
13、1else if(表达式表达式2) 语句语句2else if(表达式表达式3) 语句语句3else if(表达式表达式4) 语句语句4else语句语句n7.3.1嵌套的if语句 滨江学院滨江学院第七章 分支结构程序设计 【例【例7-4】 编程实现:根据输入的学生成绩编程实现:根据输入的学生成绩给出相应的等级,大于或等于给出相应的等级,大于或等于90分以上的分以上的等级为等级为A,60分以下的等级为分以下的等级为E,其余每,其余每10分为一个等级。分为一个等级。 【问题分析】分析题目,可以看出这个题【问题分析】分析题目,可以看出这个题目是根据输入的学生成绩确定相应的等级,目是根据输入的学生成绩确
14、定相应的等级,其处理流程如下图所示。其处理流程如下图所示。 7.3.1嵌套的if语句 滨江学院滨江学院第七章 分支结构程序设计7.3.1嵌套的if语句 滨江学院滨江学院第七章 分支结构程序设计#includevoid main()int score;printf(Enter score:); scanf(%d,&score);printf(score=%d:,score);if(score100|score=90) printf(An);else if(score=80) printf(Bn);else if(score=70) printf(Cn);else if(score=60)
15、 printf(Dn);else printf(En);7.3.1嵌套的if语句 滨江学院滨江学院第七章 分支结构程序设计 【程序分析【程序分析】 当执行以上程序时,首先输入学生的成绩,然后进入当执行以上程序时,首先输入学生的成绩,然后进入if语句。语句。 if语句中的表达式将依次对学生成绩进行判断,若能使语句中的表达式将依次对学生成绩进行判断,若能使某某if后的表达式值为后的表达式值为1,则执行与其相应的子句,之后,则执行与其相应的子句,之后便退出整个便退出整个if结构。结构。 例如,若输入的成绩为例如,若输入的成绩为86分,首先输出:分,首先输出:score=86: ,当从上向下逐一检测时
16、,使当从上向下逐一检测时,使score=80这一表达式的值这一表达式的值为为1,因此在以上输出之后再输出,因此在以上输出之后再输出B,然后便退出整个,然后便退出整个if结构。结构。 如果输入如果输入47分,则首先输出:分,则首先输出:score=47: ,因为所有,因为所有if子句中的表达式的值都为子句中的表达式的值都为0,因此执行最后,因此执行最后else子句中子句中的语句,接着输出的语句,接着输出E。然后退出。然后退出if结构。结构。7.3.1嵌套的if语句 滨江学院滨江学院第七章 分支结构程序设计7.3.2 switch语句 switch语句形式如下:语句形式如下: switch(表达式
17、表达式) case 常量表达式常量表达式1: 语句语句1case 常量表达式常量表达式2: 语句语句2case 常量表达式常量表达式n: 语句语句ndefault: 语句语句n+1switch语句体语句体 可以是整型表达式或字符型表达式可以是整型表达式或字符型表达式case语句标号语句标号 1 1、defaultdefault标号可以出现在语句体中任何标号位置标号可以出现在语句体中任何标号位置上。在上。在switchswitch语句体中也可以没有语句体中也可以没有defaultdefault标号。标号。2 2、casecase语句标号后的语句语句标号后的语句1 1、语句、语句2 2等,可以是一
18、条等,可以是一条语句,也可以是若干语句。语句,也可以是若干语句。3 3、必要时,、必要时,casecase语句标号后的语句可以省略不写。语句标号后的语句可以省略不写。4 4、在关键字、在关键字casecase和常量表达式之间一定要有空格。和常量表达式之间一定要有空格。 滨江学院滨江学院第七章 分支结构程序设计 【例【例7-5】用】用switch语句改写例语句改写例7-4。#includevoid main() int score; /*score中存放学生的成绩中存放学生的成绩*/ printf(Enter a mark:);scanf(%d,&score); printf(score
19、=%d:,score);if(score100|score0) printf(Error data!n);elseswitch(score/10)case 10:case 9:printf(An);case 8:printf(Bn);case 7:printf(Cn);case 6:printf(Dn);default:printf(En);7.3.2 switch语句 滨江学院滨江学院第七章 分支结构程序设计7.3.2 switch语句 【程序分析】当执行以上程序,输入了一个【程序分析】当执行以上程序,输入了一个73分的学生成绩后,分的学生成绩后,接着执行接着执行switch语句,首先计算语
20、句,首先计算switch之后一对括号中的表达之后一对括号中的表达式:式:73/10,它的值为,它的值为7,然后寻找与,然后寻找与7吻合的吻合的case 7分支,开始分支,开始执行其后的各语句。执行该程序的输入输出结果如下:执行其后的各语句。执行该程序的输入输出结果如下:输入:输入: Enter a mark: 73 输出:输出:score=73:CDE 在输出了与在输出了与73分相关的分相关的C之后,又同时输出了与之后,又同时输出了与73不相关不相关的等级的等级D、E,这显然不符合原意。为了改变这种多余输,这显然不符合原意。为了改变这种多余输出的情况,出的情况,switch语句常需要与语句常需
21、要与break语句配合使用。语句配合使用。 滨江学院滨江学院第七章 分支结构程序设计三、在三、在switchswitch语句体中使用语句体中使用breakbreak语句语句 break为为C语言关键字,语言关键字,break语句又称间断语句。可以将语句又称间断语句。可以将break语句放在语句放在case标号之后的任何位置,通常是在标号之后的任何位置,通常是在case之之后的语句最后加上后的语句最后加上break语句。每当执行到语句。每当执行到break语句时,语句时,立即跳出立即跳出switch语句体。语句体。7.3.2 switch语句 滨江学院滨江学院第七章 分支结构程序设计7.3.2
22、switch语句 【例【例7-6】现用】现用break语句修改【例语句修改【例7-5】的】的程序。程序。 #includevoid main() int score;printf(Enter a mark:);scanf(%d,&score);printf(score=%d:,score);if(score100|score0) printf(Error data!n);elseswitch(score/10)case 10:case 9:printf(An);break;case 8:printf(Bn);break;case 7:printf(Cn);break;case 6:pr
23、intf(Dn);break;default:printf(En); 滨江学院滨江学院第七章 分支结构程序设计7.3.2 switch语句 【程序分析】程序执行过程如下:【程序分析】程序执行过程如下: (1)当给)当给score输入输入100时,时,switch后一对括号中的表后一对括号中的表达式:达式:score/10的值为的值为10。因此选择。因此选择case 10分支,因为分支,因为没有遇到没有遇到break语句,所以继续执行语句,所以继续执行case 9分支,输出:分支,输出:score=100:A之后,遇之后,遇break语句,执行语句,执行break语句,退语句,退出出switch
24、语句体。由此可见,成绩语句体。由此可见,成绩90到到100分,执行的分,执行的是同一分支。是同一分支。 (2)当输入成绩为)当输入成绩为38时,时,switch后一对括号中表达式后一对括号中表达式的值为的值为3,将选择,将选择default分支,在输出:分支,在输出:score=38:E之之后,退出后,退出switch语句体。语句体。 (3)当输入成绩为)当输入成绩为76时,时,switch后一对括号中表达式后一对括号中表达式的值为的值为7,因此选择,因此选择case 7分支,在输出:分支,在输出:score=76:C之之后,执行后,执行break语句,退出语句,退出switch语句体。语句体
25、。 滨江学院滨江学院第七章 分支结构程序设计7.4单分支结构单分支结构是双分支结构单分支结构是双分支结构的一种特例。的一种特例。例如单分支结构:出门带例如单分支结构:出门带伞问题:伞问题:如果如果下雨,带伞下雨,带伞后后出门出门,否则否则直接直接出门出门。 滨江学院滨江学院第七章 分支结构程序设计7.4单分支结构 分支结构的两种分支结构的两种基本模式与程序设计基本模式与程序设计中的中的ifif语句:语句:此时,此时,“否否”的这个分支含义是什么的这个分支含义是什么? ?双分支结构双分支结构单分支结构单分支结构这样当学习这样当学习ifif语句中的语句中的elseelse时,时,可以理解可以理解e
26、lseelse语句中其实隐含着语句中其实隐含着不成立的条件,无须重复书写。不成立的条件,无须重复书写。 滨江学院滨江学院第七章 分支结构程序设计双分支的语句格式:双分支的语句格式:if if elseelse 单分支的语句格式:单分支的语句格式:if if 7.4单分支结构分支结构的两种基本模式与程序设计中的分支结构的两种基本模式与程序设计中的if语句对应关系:语句对应关系:ififelseelseifif双分支结构双分支结构单分支结构单分支结构条件条件 滨江学院滨江学院第七章 分支结构程序设计7.5 语句标号和goto语句 在在C语言中,语句标号不必特意加以定义,语言中,语句标号不必特意加以
27、定义,标号可以是任意合法的标识符,当在标识标号可以是任意合法的标识符,当在标识符后面加一个冒号,如:符后面加一个冒号,如:flag1: 、stop0: ,该标识符就成了一个语句标号该标识符就成了一个语句标号 stop0: printf(ENDn); 语句标号必须是标识符语句标号必须是标识符 滨江学院滨江学院第七章 分支结构程序设计 goto语句称为无条件转向语句语句称为无条件转向语句 7.5 语句标号和goto语句goto 语句标号语句标号; goto语句的作用是把程序的执行转向语句标号所在语句的作用是把程序的执行转向语句标号所在的位置,这个语句标号必须与此的位置,这个语句标号必须与此goto语句同在一个语句同在一个函数内。滥用函数内。滥用
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 采购配送管理制度
- 采购零部件质量管理制度
- 采购预算内部审查制度
- 采购验收制度与标准制度
- 量贩式KTV采购制度
- 钢结构采购管理制度
- 顾桥煤矿深部煤层开采底板灰岩水害注浆层位选择及治理研究
- AI模拟社会研究资料
- 2026年空心砖合同(1篇)
- 检验检测机构诚信评价指标体系
- 肺部真菌感染诊疗规范与临床实践
- 2025年贵州省高考物理试卷真题(含答案)
- 2026贵州省气象部门第二批公开招聘应届毕业生22人笔试备考试题及答案解析
- 昆明市公安局盘龙分局2026年第一批勤务辅警招聘(120人)笔试模拟试题及答案解析
- 医院感染预防护理培训课件
- 医护一体化业务查房制度
- 第2课 幸福生活是奋斗出来的 课件+视频-2025-2026学年道德与法治三年级下册统编版
- 2026年c语言考试题库100道【历年真题】
- 2025-2026学年统编版七年级道德与法治下册全册教案
- GB/T 18302-2026国旗升挂装置基本要求
- 2026年春季学期小学五年级下册信息科技(清华版·贵州)教学计划含进度表
评论
0/150
提交评论