C语言第四章选择结构ppt课件.ppt

上传人:b****2 文档编号:2667713 上传时间:2022-11-06 格式:PPT 页数:20 大小:742.50KB
下载 相关 举报
C语言第四章选择结构ppt课件.ppt_第1页
第1页 / 共20页
C语言第四章选择结构ppt课件.ppt_第2页
第2页 / 共20页
C语言第四章选择结构ppt课件.ppt_第3页
第3页 / 共20页
C语言第四章选择结构ppt课件.ppt_第4页
第4页 / 共20页
C语言第四章选择结构ppt课件.ppt_第5页
第5页 / 共20页
点击查看更多>>
下载资源
资源描述

C语言第四章选择结构ppt课件.ppt

《C语言第四章选择结构ppt课件.ppt》由会员分享,可在线阅读,更多相关《C语言第四章选择结构ppt课件.ppt(20页珍藏版)》请在冰豆网上搜索。

C语言第四章选择结构ppt课件.ppt

第四章第四章选择结构程序设计选择结构程序设计选择结构的特点是:

选择结构的特点是:

程序的流程是由多条支路构成的程序的流程是由多条支路构成的根据不同的情况,只有一条支路被选中执行,根据不同的情况,只有一条支路被选中执行,而其他支路上的语句被直接跳过。

而其他支路上的语句被直接跳过。

在在C语言中,提供了语言中,提供了if语句和语句和switch语句来语句来实现选择结构。

实现选择结构。

一一、ifif语句(条件选择语句)语句(条件选择语句)11、最基本的、最基本的ifif语句语句表达式表达式语句组语句组或语句或语句真真假假基本基本ifif语句的通常形式是:

语句的通常形式是:

if(if(表达式表达式)语句;语句;if(if(表达式表达式)语句;语句;语句;语句;if(xy)/*简单语句简单语句*/z=x;可以为逻辑表达可以为逻辑表达式或关系表达式式或关系表达式if(xy)/*复合语句复合语句*/z=x;x=x+1;printf(“%dn”,z);复合语句:

是由一对花括号包围起来的一条或多条语句。

复合语句:

是由一对花括号包围起来的一条或多条语句。

复合语句的形式:

复合语句的形式:

选择结构选择结构循环结构循环结构语句语句11;语句语句22;语句语句33;IfIf(条件条件)语句语句11;语句语句22;语句语句33;whilewhile(条件条件)语句语句11;语句语句22;语句语句33;复合语句复合语句逻辑上我们把复合语句看作是一条语句。

逻辑上我们把复合语句看作是一条语句。

例1:

要求用户输入一个实数,然后程序求出这个实数的绝对值并输出。

#includemain()floatx,y;printf(“Pleaseinputx:

”);scanf(“%f”,&x);y=x;if(y=0x=0则则y=xy=x,如果,如果x0x=0)If(x=0)y=x;y=x;if(x0)if(x=0)If(x=0)语句语句11;elseelse语句语句22;注意:

如果使用了复合语句,一定要用大括号把它们括起来。

注意:

如果使用了复合语句,一定要用大括号把它们括起来。

If(x0)If(x0)printf(printf(“xx为正数为正数nn”););x=x+1;x=x+1;elseelseprintf(printf(“xx为负数为负数nn”););If(x0)If(x0)printf(printf(“xx为正数为正数nn”););x=x+1;x=x+1;elseelseprintf(printf(“xx为负数为负数nn”););#include#includemain()main()intintx,yx,y;scanf(scanf(“%d,%d%d,%d”,&x,&y,&x,&y););If(xy)If(xy)printf(printf(“xxynyn”););elseelseprintf(printf(“xxyy)printf(“x大于yn”);elseif(xy)printf(“x小于yn”);elseprintf(“x等于yn”);/*example2.c*/#includemain()charc;printf(Enteracharacter:

);c=getchar();if(c=0&c=A&c=a&c=z)printf(Thecharacterisalowerlettern);elseprintf(Thecharacterisothercharactern);例例例例判断输入字符种类判断输入字符种类判断输入字符种类判断输入字符种类运行:

运行:

Enteracharacter:

8Thecharacterisadigit运行:

运行:

Enteracharacter:

DThecharacterisacapitalletter运行:

运行:

Enteracharacter:

hThecharacterisalowerletter#defineRATE11.0#defineRATE20.8#defineRATE30.7#defineRATE40.5#includemain()intnum;/*商品的购买量*/floatprice,money;/*商品的单价和应付金额*/printf(“请输入商品的购买量:

”);scanf(“%d”,);printf(“请输入商品的单价:

”);scanf(“%d”,);If()/*构物少于10件的不打折*/money=RATE1*price*num;elseif()/*10件以上8折*/money=RATE2*price*num;elseif()/*20件以上7折*/money=RATE3*price*num;else/*50件以上5折*/;printf(“应付金额为%.2f元n”,);&num&pricenum10num20numb)max=a;elsemax=b;max=(ab)?

a:

b一般形式:

表达式1?

表达式2:

表达式3表达式1为真,结果为表达式2的值表达式为假,结果为表达式3的结果;运算符“?

”的优先级只在逗号和赋值运算符之前;表达式2和表达式3只可能执行一个;这是C语言中的唯一一个三目运算符;条件运算符的结合方向为“自右自左”。

例:

已知a=5,b=6,c=7,d=8,n=2;执行以下语句后表达式的值为多少?

n的值为多少?

(ab?

a:

cd?

c:

dab?

a:

(cd?

c:

d)表达式值为15,n=2六、六、switch语句语句switch语句是多分支的选择语句又称开关语句。

语句是多分支的选择语句又称开关语句。

switchswitch的一般形式为:

的一般形式为:

注意:

常量表达式必须是整型、字符型。

注意:

常量表达式必须是整型、字符型。

switchswitch语句的工作流程:

语句的工作流程:

switch(switch(表达式表达式表达式表达式)casecase常量表达式常量表达式常量表达式常量表达式1:

1:

语句组语句组语句组语句组1;1;break;break;casecase常量表达式常量表达式常量表达式常量表达式2:

2:

语句组语句组语句组语句组2;2;break;break;.casecase常量表达式常量表达式常量表达式常量表达式n:

n:

语句组语句组语句组语句组n;n;break;break;default:

default:

语句组语句组语句组语句组n+1;n+1;break;break;执行过程:

执行过程:

执行过程:

执行过程:

(1111)当)当)当)当switchswitchswitchswitch后面后面后面后面“表达式表达式表达式表达式”的值,与某个的值,与某个的值,与某个的值,与某个casecasecasecase后面的后面的后面的后面的“常量表达式常量表达式常量表达式常量表达式”的值相同时,就执行该的值相同时,就执行该的值相同时,就执行该的值相同时,就执行该casecasecasecase后面的语句;当执后面的语句;当执后面的语句;当执后面的语句;当执行到行到行到行到breakbreakbreakbreak语句时,语句时,语句时,语句时,跳出跳出跳出跳出switchswitchswitchswitch语句语句语句语句。

(2222)如果没有任何一个)如果没有任何一个)如果没有任何一个)如果没有任何一个casecasecasecase后面的后面的后面的后面的“常量表达式常量表达式常量表达式常量表达式”的值,的值,的值,的值,与与与与“表达式表达式表达式表达式”的值匹配,则执行的值匹配,则执行的值匹配,则执行的值匹配,则执行defaultdefaultdefaultdefault分支后面的语句。

分支后面的语句。

分支后面的语句。

分支后面的语句。

说明(说明(说明(说明(1111):

):

):

):

常量表达式常量表达式常量表达式常量表达式的的的的值必须互不相同值必须互不相同值必须互不相同值必须互不相同各个各个各个各个casecasecasecase和和和和defaultdefaultdefaultdefault的出现次序不影响执行结果的出现次序不影响执行结果的出现次序不影响执行结果的出现次序不影响执行结果casecasecasecase后面的常量表达式仅起语句标号作用,并不进行条件判后面的常量表达式仅起语句标号作用,并不进行条件判后面的常量表达式仅起语句标号作用,并不进行条件判后面的常量表达式仅起语句标号作用,并不进行条件判断。

系统一旦找到入口标号,就从此标号开始执行,不再进断。

系统一旦找到入口标号,就从此标号开始执行,不再进断。

系统一旦找到入口标号,就从此标号开始执行,不再进断。

系统一旦找到入口标号,就从此标号开始执行,不再进行标号判断,所以必须加上行标号判断,所以必须加上行标号判断,所以必须加上行标号判断,所以必须加上breakbreakbreakbreak语句,以便结束语句,以便结束语句,以便结束语句,以便结束switchswitchswitchswitch语句语句语句语句例例switch(score)case5:

printf(“Verygood!

”);case4:

printf(“Good!

”);case3:

printf(“Pass!

”);case2:

printf(“Fail!

”);default:

printf(“dataerror!

”);运行结果:

运行结果:

scorescore为为55时,输出:

时,输出:

Verygood!

Good!

Pass!

Fail!

dataerror!

Verygood!

Good!

Pass!

Fail!

dataerror!

例:

根据考试成绩的等级“a,b,c,d”,打印出“优”,“良”等评语。

#include#includemain()main()charchargrade;grade;printfprintf(“请输入成绩等级请输入成绩等级(a,b,c,da,b,c,d):

”););scanf(scanf(“%c%c”,&grade);,&grade);switchswitch(greade(greade)casecaseaa:

printfprintf(“优秀优秀nn”););break;break;casecasebb:

printfprintf(“良好良好nn”););break;break;casecasecc:

printfprintf(“中等中等nn”););break;break;casecasedd:

printfprintf(“差等差等nn”););break;break;defaultdefault:

printfprintf(“输入错误输入错误nn”););lcase后可包含多个可执行语句,且不必加后可包含多个可执行语句,且不必加l多个多个case可共用一组执行语句可共用一组执行语句如:

如:

caseA:

caseB:

caseC:

printf(“score60n”);break;.说明(说明(说明(说明(2222):

):

):

):

例:

根据输入的月份值,打印出1998年的某月有多少天。

case9:

case11:

day=30;break;case2:

day=28;break;default:

day=-1;if(day!

=-1)printf(“1998年的%d月有%d天”,mouth,day);elseprintf(“月份输入错误!

n”);#includemain()intmonth;printf(“请输入月份:

”);scanf(“%c”,&mouth);switch(mouth)case1:

case3:

case5:

case7:

case8:

case10:

case12:

day=31;break;case4:

c

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

当前位置:首页 > 高中教育 > 英语

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1