第6课 分支结构程序设计_第1页
第6课 分支结构程序设计_第2页
第6课 分支结构程序设计_第3页
第6课 分支结构程序设计_第4页
第6课 分支结构程序设计_第5页
已阅读5页,还剩19页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、第第4 4章章 分支结构程序设计分支结构程序设计分支结构程序设计if语句switch语句ifif语句语句基本形式标准形式多分支形式嵌套形式格式:格式:if(表达式表达式) 语句语句执行过程:执行过程:当表达式的结果为非当表达式的结果为非0(真)时,执行后面的(真)时,执行后面的语句,否则不执行。语句,否则不执行。基本形式基本形式表达式语句=#include void main()int a,b,max;printf(“input two numbers: ”);scanf(“%d%d”,&a,&b);max=a;if (maxb) max=b;printf(“max=%dn”,

2、max);程序运行情况如下:程序运行情况如下:例4.1输出两数中的较大者格式:格式:if(表达式表达式)语句语句1 else 语句语句2执行过程:执行过程:当表达式的结果为非当表达式的结果为非0(真)时,执行语句(真)时,执行语句1,否则执行语句否则执行语句2。标准形式标准形式表达式语句1=00语句#include void main()int a, b;printf(“input two numbers: ”);scanf(“%d%d”,&a,&b);if(ab) printf(“max=%dn”,a);else printf(“max=%dn”,b);例例 输出两数中的较大

3、者输出两数中的较大者格式:格式:if(表达式表达式1) 语句语句1 else if(表达式表达式2) 语句语句2else if(表达式表达式3) 语句语句3else if(表达式表达式n) 语句语句nelse语句语句n+1 执行过程:执行过程: 各个各个表达式按顺序求值表达式按顺序求值,如果,如果某个表达式某个表达式的值的值为非为非0,则执行与其相关的那,则执行与其相关的那条语句条语句,并由此结束整个并由此结束整个if语句语句多分支形式多分支形式表达式1语句1表达式2语句2表达式3语句3表达式n语句n语句n+#include void main() char c;printf(“Enter a

4、 character:”);c=getchar();if(c=0&c=A&c=a&c=z) printf(“The character is a lower lettern”);else printf(“The character is other charactern”);#include void main() char c;printf(“Enter a character:”);c=getchar();if(c=0&c=A&c=a&c0) printf(“%f”,x);elseprintf(“%f”,-x);各有一个分号各有一个分号3 3

5、)在)在ifif和和elseelse后面可以只含有一个内嵌的操作语句,后面可以只含有一个内嵌的操作语句,也可以由多个操作语句组成,此时用也可以由多个操作语句组成,此时用将几个语将几个语句括起来组成一个复合语句。句括起来组成一个复合语句。if(a+bc & b+ca & c+ab) s=0.5*(a+b+c);area=sqrt(s*(s-a)*(s-b)*(s-c);printf(“area=%8.2f”,area);else printf (“所输入的三边长不能构成三角形所输入的三边长不能构成三角形”);概念:概念:在在ifif语句中又包含一个或多个语句中又包含一个或多个if

6、if语句语句称为称为ifif语句的嵌套。嵌套既可以出现在语句的嵌套。嵌套既可以出现在ifif语句块中,也可以出现在语句块中,也可以出现在elseelse语句块中。语句块中。 嵌套形式嵌套形式格式:格式:if(if(表达式表达式1)1) if( if( 表达式表达式2) 2) 语句语句1 1 else else 语句语句2 2else else if( if(表达式表达式3) 3) 语句语句3 3 else else 语句语句4 4 if( if( 表达式表达式2) 2) 语句语句1 1 else else 语句语句2 2 if( if(表达式表达式3) 3) 语句语句3 3 else else

7、 语句语句4 表达式表达式1表达式表达式3语句语句40 =0表达式表达式2语句语句3语句语句1语句语句20 0 =0=0图4-4 嵌套的 if else 语句流程图#include void main() int x,y;printf(“Enter integer x,y:”);scanf(“%d,%d”,&x,&y);if(x!=y) if(xy) printf(“xyn”); else printf(“xyn”);else printf(“x=yn”);配对配对输入两数并判断其大小关系输入两数并判断其大小关系分析原则:分析原则:else总是与上面最近的、没有匹总是与上面最近

8、的、没有匹配过的配过的 if 匹配。匹配。 嵌套形式嵌套形式例:例:if(表达式表达式1)if(表达式表达式2) 语句语句1 elseif(表达式表达式3) 语句语句3 else 语句语句4 else 语句语句5 例:例:if(表达式表达式1)if(表达式表达式2) 语句语句1 else if(表达式表达式3) 语句语句3 else 语句语句4 else 语句语句5 配对配对配对if (x 2) if (x 1) y = x + 1; else y = x + 2;if (x 2) if (x 1) y = x + 1;else y = x + 2;if (x 2) if (x 1) y =

9、x + 1; else ;else y = x + 2;改写下列改写下列 if if 语句,使语句,使 else else 和第和第1 1个个 if if 配对。配对。一般形式一般形式:switch(表达式表达式)case 常量常量表达式表达式 1: 语句语句 1;case 常量常量表达式表达式 2: 语句语句 2;case 常量表达式常量表达式 3: 语句语句 3; case 常量常量表达式表达式 n: 语句语句 n;default: 语句语句 n+1;switchswitch语句语句常量表达式常量表达式 2表表达达式式语句段语句段n+1常量表达式常量表达式 1常量表达式常量表达式 n常量表

10、达式常量表达式 3.其他其他语句段语句段n语句段语句段3语句段语句段2语句段语句段#include void main()int score;scanf(“%d”,&score);switch(score) case 5: printf(“Very good!n”);case 4: printf(“Good!n”);case 3: printf(“Pass!n”);case 2: printf(“Fail!n”);default: printf(“data error!n”); break;break;break;break;break;4.3.24.3.2在在switchswitch

11、语句的每个语句段中都使用语句的每个语句段中都使用breakbreak语句语句switch(表达式表达式) case 常量表达式常量表达式1: 语句段语句段1; break; case 常量表达式常量表达式2: 语句段语句段2 ; break; case 常量表达式常量表达式n: 语句段语句段n ; break; default : 语句段语句段n+1 ; break;常量表达式常量表达式 2表表达达式式语句段语句段n+1常量表达式常量表达式 1常量表达式常量表达式 n.其他其他语句段语句段n语句段语句段2语句段语句段例例4.8从键盘上输入一个百分制成绩从键盘上输入一个百分制成绩 score,按

12、下列原则输出其等级:,按下列原则输出其等级:score90,等级为等级为 A;80score90,等级为,等级为 B;70score80,等级为,等级为 C;60score70,等级为,等级为 D;score60,等级为,等级为 E。#include void main()int score, grade;printf(“Input a score(0100): “);scanf(“%d”, &score);grade=score/10; switch(grade) case 10: case 9: printf(“grade=An”);break;case 8: printf(“gr

13、ade=Bn”);break;case 7: printf(“grade=Cn”);break;case 6: printf(“grade=Dn”);break;case 5:case 4:case 3:case 2:case 1:case 0: printf(“grade=En”);break;default: printf(“The score is out of range!n”);注意:1 1)switch switch 语句中的语句中的”表达式表达式”和和casecase后面的后面的”常量常量表达式表达式”的结果值的类型应该一致的结果值的类型应该一致( (整型或字符整型或字符型型)

14、)。2 2)每一个)每一个casecase的常量表达式的值必须互不相同,否的常量表达式的值必须互不相同,否则出现矛盾现象。各个则出现矛盾现象。各个casecase的出现次序不影响执的出现次序不影响执行结果。行结果。3 3)执行完一个)执行完一个casecase后面的语句后,流程控制转移下后面的语句后,流程控制转移下一个一个casecase继续执行,除非有继续执行,除非有breakbreak语句跳出语句跳出switchswitch。4 4)default default 语句为选择项,可有可无。另外,语句为选择项,可有可无。另外,default default 后面可以不加后面可以不加break

15、break语句。语句。1 1)switch switch 语句中的语句中的”表达式表达式”和和casecase后面的后面的”常量常量表达式表达式”的结果值的类型应该一致(整型或字符的结果值的类型应该一致(整型或字符型)。型)。2 2)每一个)每一个casecase的常量表达式的值必须互不相同,否的常量表达式的值必须互不相同,否则出现矛盾现象。各个则出现矛盾现象。各个casecase的出现次序不影响执的出现次序不影响执行结果。行结果。3 3)执行完一个)执行完一个casecase后面的语句后,流程控制转移下后面的语句后,流程控制转移下一个一个casecase继续执行,除非有继续执行,除非有bre

16、akbreak语句跳出语句跳出switchswitch。4 4)default default 语句为选择项,可有可无。另外语句为选择项,可有可无。另外,default default 后面可以不加后面可以不加breakbreak语句。语句。注意:004( )01532.510.515xxyf xxxx# include int main(void) double x, y; printf(Enter x:); scanf(%lf, &x); if (x 0) y = 0; else if (x = 15) y = 4 * x / 3; else y = 2.5 * x - 10.5;

17、 printf(f(%.2f) = %.2fn, x, y); return 0;Enter x: -0.5f(-0.50) = 0.00 Enter x: 9.5f(9.50) = 12.67Enter x: 21.3f(21.30) = 42.75例例4.104.10分段计算水费。分段计算水费。 # include int main(void) char operator; double value1, value2; printf(Type in an expression: ); scanf(%lf%c%lf, &value1, &operator, &value2); switch(operator) case +: printf(=%.2fn, value1+value2); break; case -: printf(=%.2fn, value1-value2); break;

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论