第四章选择结构程序设计.ppt
《第四章选择结构程序设计.ppt》由会员分享,可在线阅读,更多相关《第四章选择结构程序设计.ppt(23页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、第4章 选择结构程序设计选择结构程序设计 if语句 多分支选择语句 goto语句 程序综合举例 4.1 if语句 一、一、一、一、ifififif语句的几种格式语句的几种格式语句的几种格式语句的几种格式 ifififif语语语语句句句句可可可可以以以以根根根根据据据据给给给给定定定定的的的的条条条条件件件件进进进进行行行行判判判判断断断断,以以以以决决决决定定定定执执执执行行行行某某某某个个个个分分分分支支支支程程程程序序序序段段段段。1 1 1 1基本基本基本基本if-elseif-elseif-elseif-else语句语句语句语句 其一般格式为:其一般格式为:其一般格式为:其一般格式为:
2、if(if(if(if(表达式表达式表达式表达式)语句语句语句语句1 1 1 1 else else else else 语句语句语句语句2 2 2 2 其执行过程为:首先计算表达式的值,如果表达式的值为真,则执行语句其执行过程为:首先计算表达式的值,如果表达式的值为真,则执行语句其执行过程为:首先计算表达式的值,如果表达式的值为真,则执行语句其执行过程为:首先计算表达式的值,如果表达式的值为真,则执行语句1 1 1 1(也称为(也称为(也称为(也称为ifififif子句),然后跳过语句子句),然后跳过语句子句),然后跳过语句子句),然后跳过语句2 2 2 2(也称(也称(也称(也称elsee
3、lseelseelse子句),执行紧跟在语句子句),执行紧跟在语句子句),执行紧跟在语句子句),执行紧跟在语句2 2 2 2之之之之后的语句;如果表达式的值为假,则跳过后的语句;如果表达式的值为假,则跳过后的语句;如果表达式的值为假,则跳过后的语句;如果表达式的值为假,则跳过ifififif子句,执行语句子句,执行语句子句,执行语句子句,执行语句2 2 2 2,然后继续向下,然后继续向下,然后继续向下,然后继续向下执行。执行。执行。执行。4.1 if语句 例例例例4-1 4-1 4-1 4-1 输入两个整数输入两个整数输入两个整数输入两个整数a a a a和和和和b b b b,输出其中的大数
4、。,输出其中的大数。,输出其中的大数。,输出其中的大数。分析分析分析分析 使用使用使用使用ifififif语句比较变量语句比较变量语句比较变量语句比较变量a a a a和和和和b b b b的大小,若的大小,若的大小,若的大小,若abababab,则输出,则输出,则输出,则输出a a a a,否则输出,否则输出,否则输出,否则输出b b b b。程序程序程序程序#include#include#include#include main()main()main()main()intintintint a,ba,ba,ba,b;printf(Inputprintf(Inputprintf(Inpu
5、tprintf(Input two numbers:);two numbers:);two numbers:);two numbers:);scanf(%d%d,&a,&bscanf(%d%d,&a,&bscanf(%d%d,&a,&bscanf(%d%d,&a,&b););););if(aif(aif(aif(ab)b)b)b)printf(maxprintf(maxprintf(maxprintf(max=%=%=%=%dn,adn,adn,adn,a););););else else else else printf(max=%dn,b);printf(max=%dn,b);printf
6、(max=%dn,b);printf(max=%dn,b);4.1 if语句 例例例例4-2 4-2 4-2 4-2 对例对例对例对例3-43-43-43-4进行改进,输入三角形的三边长,求三角形面积。若输入的三进行改进,输入三角形的三边长,求三角形面积。若输入的三进行改进,输入三角形的三边长,求三角形面积。若输入的三进行改进,输入三角形的三边长,求三角形面积。若输入的三边长构不成三角形,输出一条说明信息。边长构不成三角形,输出一条说明信息。边长构不成三角形,输出一条说明信息。边长构不成三角形,输出一条说明信息。#include#include#include#include#include#
7、include#include#include main()main()main()main()float float float float a,b,c,s,areaa,b,c,s,areaa,b,c,s,areaa,b,c,s,area;printf(Inputprintf(Inputprintf(Inputprintf(Input a,b,ca,b,ca,b,ca,b,c:);:);:);:);scanf(%f,%f,%f,&a,&b,&cscanf(%f,%f,%f,&a,&b,&cscanf(%f,%f,%f,&a,&b,&cscanf(%f,%f,%f,&a,&b,&c);););
8、);if(a+bif(a+bif(a+bif(a+b c&b+cc&b+cc&b+cc&b+c a&a+ca&a+ca&a+ca&a+cb)b)b)b)s=(a+b+c)/2;s=(a+b+c)/2;s=(a+b+c)/2;s=(a+b+c)/2;area=area=area=area=sqrt(ssqrt(ssqrt(ssqrt(s*(s-a)*(*(s-a)*(*(s-a)*(*(s-a)*(s-bs-bs-bs-b)*()*()*()*(s-cs-cs-cs-c););););printf(aprintf(aprintf(aprintf(a=%7.2f,b=%7.2f,c=%7.2f,s
9、=%7.2fn,a,b,c,s);=%7.2f,b=%7.2f,c=%7.2f,s=%7.2fn,a,b,c,s);=%7.2f,b=%7.2f,c=%7.2f,s=%7.2fn,a,b,c,s);=%7.2f,b=%7.2f,c=%7.2f,s=%7.2fn,a,b,c,s);printf(areaprintf(areaprintf(areaprintf(area=%7.2fn,area);=%7.2fn,area);=%7.2fn,area);=%7.2fn,area);else else else else printf(noprintf(noprintf(noprintf(no res
10、ule.nresule.nresule.nresule.n););););4.1 if语句 2 2 2 2简单简单简单简单ifififif语句语句语句语句 其一般格式为:其一般格式为:其一般格式为:其一般格式为:if(if(if(if(表达式表达式表达式表达式)语句语句语句语句A A A A 其执行过程是:首先计算表达式的值,如果表达式的值为真,则执行语句其执行过程是:首先计算表达式的值,如果表达式的值为真,则执行语句其执行过程是:首先计算表达式的值,如果表达式的值为真,则执行语句其执行过程是:首先计算表达式的值,如果表达式的值为真,则执行语句A A A A,然后继续执行,然后继续执行,然后继
11、续执行,然后继续执行ifififif语句后的下一条语句;如果表达式的值为假,则不执行语语句后的下一条语句;如果表达式的值为假,则不执行语语句后的下一条语句;如果表达式的值为假,则不执行语语句后的下一条语句;如果表达式的值为假,则不执行语句句句句A A A A,直接执行语句,直接执行语句,直接执行语句,直接执行语句A A A A之后的语句,即之后的语句,即之后的语句,即之后的语句,即ifififif语句后的下一条语句。语句后的下一条语句。语句后的下一条语句。语句后的下一条语句。4.1 if语句 例例例例4-3 4-3 4-3 4-3 用简单用简单用简单用简单ifififif语句,改写例语句,改写
12、例语句,改写例语句,改写例4-14-14-14-1的程序。的程序。的程序。的程序。分析分析分析分析 输入两个整数输入两个整数输入两个整数输入两个整数a a a a和和和和b b b b,先把,先把,先把,先把a a a a赋给变量赋给变量赋给变量赋给变量maxmaxmaxmax,再用,再用,再用,再用ifififif语句判别语句判别语句判别语句判别maxmaxmaxmax和和和和b b b b的大小,的大小,的大小,的大小,如果如果如果如果maxmaxmaxmax小于小于小于小于b b b b,则把,则把,则把,则把b b b b赋给赋给赋给赋给maxmaxmaxmax。因此,。因此,。因此,
13、。因此,maxmaxmaxmax中保存的总是大数。中保存的总是大数。中保存的总是大数。中保存的总是大数。程序程序程序程序main()main()main()main()intintintint a,b,maxa,b,maxa,b,maxa,b,max;printf(Inputprintf(Inputprintf(Inputprintf(Input two numbers:);two numbers:);two numbers:);two numbers:);scanf(%d%d,&a,&bscanf(%d%d,&a,&bscanf(%d%d,&a,&bscanf(%d%d,&a,&b););)
14、;);max=a;max=a;max=a;max=a;if(maxif(maxif(maxif(maxb)b)b)b)max=b;max=b;max=b;max=b;printf(maxprintf(maxprintf(maxprintf(max=%=%=%=%dn,maxdn,maxdn,maxdn,max););););4.1 if语句 例例例例4-4 4-4 4-4 4-4 对例对例对例对例3-33-33-33-3进行改进,当从键盘输入一个小写英文字母时,在屏幕上输出进行改进,当从键盘输入一个小写英文字母时,在屏幕上输出进行改进,当从键盘输入一个小写英文字母时,在屏幕上输出进行改进,当从
15、键盘输入一个小写英文字母时,在屏幕上输出它的大写形式;否则,原样输出。它的大写形式;否则,原样输出。它的大写形式;否则,原样输出。它的大写形式;否则,原样输出。分析分析分析分析 英文字母是以英文字母是以英文字母是以英文字母是以ASCIIASCIIASCIIASCII码的方式存储的,判断一个字符是否为码的方式存储的,判断一个字符是否为码的方式存储的,判断一个字符是否为码的方式存储的,判断一个字符是否为小写英文字母,小写英文字母,小写英文字母,小写英文字母,可根据它的可根据它的可根据它的可根据它的ASCIIASCIIASCIIASCII码值,小于等于码值,小于等于码值,小于等于码值,小于等于zzz
16、z且大于等于且大于等于且大于等于且大于等于aaaa的即为小写英文字母。的即为小写英文字母。的即为小写英文字母。的即为小写英文字母。程序程序程序程序#include#include#include#include main()main()main()main()char char char char chchchch;printf(Inputprintf(Inputprintf(Inputprintf(Input a character:);a character:);a character:);a character:);chchchch=getchargetchargetchargetcha
17、r();();();();if(chif(chif(chif(ch=a&cha&cha&cha&ch=z)=z)=z)=z)ch=ch-32;/*ch=ch-32;/*ch=ch-32;/*ch=ch-32;/*将小写字母转换为大写字母将小写字母转换为大写字母将小写字母转换为大写字母将小写字母转换为大写字母*/putchar(chputchar(chputchar(chputchar(ch););););putchar(nputchar(nputchar(nputchar(n););););4.1 if语句 3 3 3 3多分支多分支多分支多分支if-else ifif-else ifif-e
18、lse ifif-else if语句语句语句语句 其一般形式为:其一般形式为:其一般形式为:其一般形式为:if(if(if(if(表达式表达式表达式表达式1)1)1)1)语句语句语句语句1 1 1 1 else if(else if(else if(else if(表达式表达式表达式表达式2)2)2)2)语句语句语句语句2 2 2 2 else if(else if(else if(else if(表达式表达式表达式表达式3)3)3)3)语句语句语句语句3 3 3 3 else if(else if(else if(else if(表达式表达式表达式表达式n)n)n)n)语句语句语句语句n n
19、 n n else else else else 语句语句语句语句n+1n+1n+1n+1 if-else if if-else if if-else if if-else if语句的执行过程是:从上到下逐个对条件进行判断,一旦发现语句的执行过程是:从上到下逐个对条件进行判断,一旦发现语句的执行过程是:从上到下逐个对条件进行判断,一旦发现语句的执行过程是:从上到下逐个对条件进行判断,一旦发现条件满足就执行与它有关的语句,其下的所有条件都不再判断,当然与它们对条件满足就执行与它有关的语句,其下的所有条件都不再判断,当然与它们对条件满足就执行与它有关的语句,其下的所有条件都不再判断,当然与它们对条
20、件满足就执行与它有关的语句,其下的所有条件都不再判断,当然与它们对应的语句也不被执行,直接跳出应的语句也不被执行,直接跳出应的语句也不被执行,直接跳出应的语句也不被执行,直接跳出ifififif语句,转到语句,转到语句,转到语句,转到ifififif语句后的语句(位于语句语句后的语句(位于语句语句后的语句(位于语句语句后的语句(位于语句n+1n+1n+1n+1之后)继续执行;当任何一个条件都不满足时,执行语句之后)继续执行;当任何一个条件都不满足时,执行语句之后)继续执行;当任何一个条件都不满足时,执行语句之后)继续执行;当任何一个条件都不满足时,执行语句n+1n+1n+1n+1。4.1 if
21、语句 例例例例4-5 4-5 4-5 4-5 根据输入的学生的成绩,输出成绩的等级(根据输入的学生的成绩,输出成绩的等级(根据输入的学生的成绩,输出成绩的等级(根据输入的学生的成绩,输出成绩的等级(A A A A、B B B B、C C C C、D D D D、E E E E)。成绩等)。成绩等)。成绩等)。成绩等级划分方法如下:级划分方法如下:级划分方法如下:级划分方法如下:A A A A:90 B90 B90 B90 B:8089808980898089 C C C C:7079 D7079 D7079 D7079 D:6069606960696069 E E E E:60606060程序
22、如下:程序如下:程序如下:程序如下:#include#include#include#include main()main()main()main()intintintint score;score;score;score;printf(Inputprintf(Inputprintf(Inputprintf(Input score:);score:);score:);score:);scanf(%d,&scorescanf(%d,&scorescanf(%d,&scorescanf(%d,&score););););if(scoreif(scoreif(scoreif(score=90)=90
23、)=90)=90)printf(Anprintf(Anprintf(Anprintf(An););););else if(score=80)else if(score=80)else if(score=80)else if(score=80)printf(Bnprintf(Bnprintf(Bnprintf(Bn););););else if(score=70)else if(score=70)else if(score=70)else if(score=70)printf(Cnprintf(Cnprintf(Cnprintf(Cn););););else if(score=60)else i
24、f(score=60)else if(score=60)else if(score=60)printf(Cnprintf(Cnprintf(Cnprintf(Cn););););else else else else printf(Enprintf(Enprintf(Enprintf(En););););4.1 if语句 二、二、二、二、ifififif语句的嵌套语句的嵌套语句的嵌套语句的嵌套 if if if if子句和子句和子句和子句和elseelseelseelse子句可以是任意合法的子句可以是任意合法的子句可以是任意合法的子句可以是任意合法的C C C C语句,当它们又是语句,当它们又
25、是语句,当它们又是语句,当它们又是ifififif语句时,则构语句时,则构语句时,则构语句时,则构成了成了成了成了ifififif语句的嵌套。语句的嵌套。语句的嵌套。语句的嵌套。1 1 1 1在在在在ifififif子句中嵌套基本子句中嵌套基本子句中嵌套基本子句中嵌套基本if-elseif-elseif-elseif-else语句语句语句语句 其一般形式如下:其一般形式如下:其一般形式如下:其一般形式如下:if(if(if(if(表达式表达式表达式表达式1)1)1)1)if(if(if(if(表达式表达式表达式表达式2)2)2)2)语句语句语句语句1 1 1 1 else else else
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 第四 选择 结构 程序设计
限制150内