当前位置:文档之家› 第一讲 多分支嵌套结构的实现

第一讲 多分支嵌套结构的实现

if(number < 0){ number = -number;}
编程实现 分析: 负数求反,正数跳出
Enter a number: 10 The absolute value is 10.
Enter a number: -300 The absolute value is 300.
printf("The absolute value is %d.\n", number); return 0;
22

2、在switch 语句的每个 语句段中都 使用break语 句,并使用 default
#include<stdio.h> main( ) { int fScore; char cLevel; printf("请输入学生成绩:"); scanf("%d",&fScore); while(fScore >100|| fScore <0) { printf("\n输入有误,请重输。"); scanf("%d",& fScore); } switch(fScore /10) { case 10: case 9: cLevel ='A';break; case 8: cLevel ='B';break; case 7: cLevel ='C';break; case 6: cLevel ='D';break; case 5: case 4: default case 3: :cLevel ='E'; case 2: case 1: case 0: cLevel ='E'; } printf("成绩是%d,相应等级是%c。", fScore, cLevel); }
第二部分 模块化程序设计
1
第二部分 主要内容
第一讲 多分支嵌套结构的实现 第二讲 循环嵌套结构的实现 第三讲 数据文件及应用 第四讲 指针及应用

2
第一讲
多分支嵌套结构的实现
3
主要内容
回顾程序的三种基本结构 嵌套结构

选择嵌套结构——if语句深入
switch语句 应用实例
语句段1
break break
语句段2 表 达 式
表达式的值=常量表达式 n 的值
语句段n break break
其他 语句段n+1
21
switch语句
处理多分支选择问题,3种情况
1、在switch语句的每个语句段中都使用break 语句,但不使用default
switch(表达式){ case 常量表达式1:语句段1; break; case 常量表达式2:语句段2 ; break; ....… case 常量表达式n:语句段n ; break; default : 语句段n+1 ; }
B C D E
#include <stdio.h> #include<stdio.h> void main(void) main( ) { char cLevel; { int fScore; char cLevel; int fScore; printf("请输入成绩:"); scanf("%d",&fScore); printf("请输入成绩:"); scanf("%d",&fScore); while(fScore >100|| fScore <0) if(fScore>100||fScore<0) { { printf("\n输入有误,请重输。"); scanf("%d",& fScore); } printf("\n输入成绩错误!"); } switch(fScore /10) else if (fScore > 89) { case 10: cLevel='A'; case 9: cLevel ='A';break; else if (fScore > 79) case 8: cLevel ='B';break; cLevel='B'; case 7: cLevel ='C';break; else if (fScore > 69) case 6: cLevel ='D';break; cLevel='C'; case 5: else if (fScore > 59) case 4: default cLevel='D'; case 3: :cLevel ='E'; else cLevel='E'; case 2: case 1: printf("该成绩等级:%c\n",cLevel); } case 0: cLevel ='E'; } printf("成绩是%d,相应等级是%c。", fScore, cLevel); }

参考 §2.2.2 §2.3 §2.4
4
三种基本结构的示意图
顺序结构
选择结构
循环结构
5
嵌套结构
自顶向下,逐步细化的分析结果。 三种基本结构中的语句组(顺序语句组、if 分支语句组、else分支语句组、循环体语句 组)可以包含任意结构的语句,从而形成 不同的嵌套结构。 嵌套结构没有特定的结构形式,由分析方 法自然形成。
15
else 和 if 的匹配
if(表达式1)
if(表达式2) 语句1 else 语句2
if(表达式1) if(表达式2) 语句1
else
if(表达式3) 语句3 else 语句4
else if(表达式3) 语句3 else 语句4
else 与最靠近它的、没有与别的 else 匹配过的 if 匹配
}
10
选择嵌套结构

在if语句中又包含一个或多个if语句--if语 句的嵌套

参考§ 2.2.2
11
完整嵌套结构 P39

if(条件1) if(条件2) 语句1 else 语句2 else if(条件3) 语句3 else 语句4
表达 式1


表达 式2


表达 式3

语句 1
语句 2
语句 3
语句 4
表达式n-1 真 语句1 语句2 …
语句n-1
语句n
18
实 、例 、: 输 、入 输百 出分 相制 应成 等绩 级〄 。按 、 A
#include <stdio.h> void main(void) { char cLevel; int fScore; printf("请输入成绩:"); scanf("%d",&fScore); /*输入成绩*/ if(fScore>100||fScore<0) { printf("\n输入成绩错误!"); } else if (fScore > 89) /*分数fScore>=90*/ cLevel='A'; else if (fScore > 79) /*分数90>fScore>=80*/ cLevel='B'; else if (fScore > 69) /*分数80>fScore>=70*/ cLevel='C'; else if (fScore > 59) /*分数70>fScore>=60*/ cLevel='D'; else cLevel='E'; /*分数fScore<60*/ printf("该成绩的等级为:%c\n",cLevel); }
写出If语句
4x y f ( x) 0 x 15 3 x 15 2.5 x 10.5
Enter x: -0.5
if (x < 0){ f(-0.50) = 0.00 y = 0; } Enter x: 9.5 else if (x <= 15) { y = 4 * x / 3; f(9.50) = 12.67 } else{ Enter x: 21.3 y = 2.5 * x - 10.5; f(21.30) = 42.75 }
6
选择嵌套结构——if语句深入
if语句的多种结构 if和else的匹配原则

7
if语句的多种结构

真 表达式 语句1

双分支结构(复习)
语句2
十字路口或直行或右转弯
单分支结构
十字路口或直行或停
选择嵌套结构
多分支结构
参考§2.2.2
if (条件表达式) 语句1 else 语句2
if (x < 2) if (x < 1) y = x + 1; else; else y = x + 2; 17
多分支结构
表达式 1 真 假

表达式 2 真
if (表达式1) 语句1 else if (表达式2) 语句2 …… else if (表达式n-1) 语句n-1 else 语句n
… 假 假
0
x0
13
y=x+1 y= y=x+2 y=x+3
2种嵌套if语句的比较

x<1 1<=x<2 x>=2
相关主题