C语言switch.ppt
合集下载
2020-2021学年信息学奥赛资料 第七课 选择结构-switch(适用于高中)课件
case ‘ C ’ :cout << “ Pass ” << endl; break;
}
}
例3:根据从键盘上输入的表示星期几的数字,对应输 出它的英文名称。
问题分析:用1对应Monday国内,用外研2究对状应况Tuesday ,用3对 应Wednesday, 用4对应Thurday,用5对应 Friday , Lorem ipsum dolor sit amet, consectetur adipiscing elit. Donec
第七课 选择结构-switch
目标
01.掌握 switch 语句的格式和含义。 02、
多分支语句—switch
在一些实际问题中,分类情况特别多,用if语句嵌套实现起来,层数太多, 容易出错。为此,C++提供了一种多分支语句——switch。
switch 语句的一般格式为: switch (表达式){
例1、阅读下面程序,思考输入“-”,则输出什么。
#include<iostream> using namespace std; int main(){
char symbol; cin >> symbol; switch(symbol){
case ‘ + ’ :cout << “ + ” << endl; break; case ‘ - ’ :cout << “ - ” << endl; break; case ‘ * ’ :cout << “ * ” << endl; break; case ‘ / ’ :cout << “ / ” << endl; break; default:cout << “ Input Invalid! ” ; } return 0; }
精品-清华大学C语言课件 第7章03 switch语句
return 0; }
运行程序,显示效果如图7.17所示。
图7.17 使用switch语句输出分数段 本程序使用switch语句判断字符变量cGrade,其中使用case关键字检验可能出现的级别情况。并 且在每一个case语句的最后都会有break进行跳出。如果没有符合的情况则会执行default默认语句。 注意: 在case语句表示的条件后有一个冒号“:”,在编写时不要忘记。
运行程序,显示效果如图7.19所示。
图7.19 使用多路开关模式编写日程安排程序 程序中使用多路开关模式,使得检测iDay的值为2、3、4、5这四种情况时,都会执行相同的结果。 并且利用default语句将不符合的数字显示提示信息表示输入错误。
switch (表达式) { case 情况1: 语句块1; case 情况2: 语句块2; … case 情况n: 语句块n; default: 默认情况语句块; }
其语句的程序流程如下图7.15所示。
图7.15 switch多分支选择语句流程
通过上面的流程图进行分析switch语句的一般形式。switch后面括号中的表达式就是要进行判断的条 件。在switch的语句块中,使用case关键字表示检验条件符合的各种情况,其后的语句是相应的操作。 其中还有一个default关键字,代表的作用是如果上面没有符合条件的情况,那么执行default后的默认情 况语句。
在实例7.9中,将break去掉之后,会将符合检验条件后的所有语句都输出。利用这个特点,可以设 计多路开关模式的switch语句。其形式如下。
switch(表达式) { case 1: 语句1 break; case 2: case 3: 语句2 break; …… default: 默认语句 break; }
运行程序,显示效果如图7.17所示。
图7.17 使用switch语句输出分数段 本程序使用switch语句判断字符变量cGrade,其中使用case关键字检验可能出现的级别情况。并 且在每一个case语句的最后都会有break进行跳出。如果没有符合的情况则会执行default默认语句。 注意: 在case语句表示的条件后有一个冒号“:”,在编写时不要忘记。
运行程序,显示效果如图7.19所示。
图7.19 使用多路开关模式编写日程安排程序 程序中使用多路开关模式,使得检测iDay的值为2、3、4、5这四种情况时,都会执行相同的结果。 并且利用default语句将不符合的数字显示提示信息表示输入错误。
switch (表达式) { case 情况1: 语句块1; case 情况2: 语句块2; … case 情况n: 语句块n; default: 默认情况语句块; }
其语句的程序流程如下图7.15所示。
图7.15 switch多分支选择语句流程
通过上面的流程图进行分析switch语句的一般形式。switch后面括号中的表达式就是要进行判断的条 件。在switch的语句块中,使用case关键字表示检验条件符合的各种情况,其后的语句是相应的操作。 其中还有一个default关键字,代表的作用是如果上面没有符合条件的情况,那么执行default后的默认情 况语句。
在实例7.9中,将break去掉之后,会将符合检验条件后的所有语句都输出。利用这个特点,可以设 计多路开关模式的switch语句。其形式如下。
switch(表达式) { case 1: 语句1 break; case 2: case 3: 语句2 break; …… default: 默认语句 break; }
C语言switch语句
Elseif(表达式2)语句2
Elseif(表达式2)语句2 ... Elseif(表达式2)语句2 Else 语句n
六、说教学过程
2.课程导入
游戏 任务
联系实际分析问 题,构建数学模 型,编写适当的 选择结构程序。
六、说教学过程
3.问题提出 ①问题描述 (自主探究) 请学生描述 “石头、剪刀、布” 游戏的规则? ②归纳总结(交流评价) 游戏对象:人(≥2人) 规则:
在此之前,已经学过C语言的语法结构,并且介绍了基础的C语言
程序设计,本章为三种基本结构之一的选择结构,Switch语句是C 语言中常用的选择结构语句。在讲述完本章内容之后,教材开始介 绍循环控制以及更高级的程序设计知识。
二、说学情分析
▐所面向的学生为:中高衔接计算机专业二年级学生 ▐学情分析:
本门课程为大专课程,涉及到大量的数学知识和逻辑思维。学生基础 相对薄弱,在计算一个数学问题上往往需要很长的时间,但本班学生 学习都比较认真努力。且在switch语句之前,学生已经学习了c程序的 基本结构和基本内容等,能应用所学知识编写简单的程序 。大部分学 生能理解老师上课所讲内容,课后的作业也能及时完成。
五、说教法与学法
任务驱动 游戏教学法
1
1
自主学习法 探究学习法
教 法
2
3 4
2 3
学 法
讲授法 讨论法
合作学习法
六、说教学过程
A
B
复习
导入
C D
E
新课
小结
作业布置
8
六、说教学过程
1.复习上节课程内容 If语句
If语句的三种形式
(1)、 If(表达式)语句
(2)、 If (表达式)语句1 else 语句2 (3) 、If(表达式)语句1
Elseif(表达式2)语句2 ... Elseif(表达式2)语句2 Else 语句n
六、说教学过程
2.课程导入
游戏 任务
联系实际分析问 题,构建数学模 型,编写适当的 选择结构程序。
六、说教学过程
3.问题提出 ①问题描述 (自主探究) 请学生描述 “石头、剪刀、布” 游戏的规则? ②归纳总结(交流评价) 游戏对象:人(≥2人) 规则:
在此之前,已经学过C语言的语法结构,并且介绍了基础的C语言
程序设计,本章为三种基本结构之一的选择结构,Switch语句是C 语言中常用的选择结构语句。在讲述完本章内容之后,教材开始介 绍循环控制以及更高级的程序设计知识。
二、说学情分析
▐所面向的学生为:中高衔接计算机专业二年级学生 ▐学情分析:
本门课程为大专课程,涉及到大量的数学知识和逻辑思维。学生基础 相对薄弱,在计算一个数学问题上往往需要很长的时间,但本班学生 学习都比较认真努力。且在switch语句之前,学生已经学习了c程序的 基本结构和基本内容等,能应用所学知识编写简单的程序 。大部分学 生能理解老师上课所讲内容,课后的作业也能及时完成。
五、说教法与学法
任务驱动 游戏教学法
1
1
自主学习法 探究学习法
教 法
2
3 4
2 3
学 法
讲授法 讨论法
合作学习法
六、说教学过程
A
B
复习
导入
C D
E
新课
小结
作业布置
8
六、说教学过程
1.复习上节课程内容 If语句
If语句的三种形式
(1)、 If(表达式)语句
(2)、 If (表达式)语句1 else 语句2 (3) 、If(表达式)语句1
《C语言程序设计(第五版)》第4章选择结构程序的设计 PPT课件
►(b*b-4*a*c)>=0
b*b-4*a*c>=0
►z= (x>y+3)
z= x>y+3
►(a>b)= = c
a>b= =c
►a=(b!=c)
a=b!=c
当然为提高程序的可读性、可维护性你不妨多使用 括号,因为C语言中的有些优先级很容易让你不小心犯 错。
C语言程序设计
第4章 选择结构程序设计
第10页
“>”的结果为“假”,即条件不成立。
C语言程序设计
第4章 选择结构程序设计
第5页
4.1 关系运算及关系表达式
4.1.1 关系运算符及其优先次序
运算符
含义
> 大于
优先级
结合性
>= 大于或等于 这些关系运算符等优
< 小于
先级,但比下面的优 先级高
左结合性
<= 小于或等于
== 等于 != 不等于
这些关系运算符等优 先级,但比上面的优 先级低
C语言程序设计
第4章 选择结构程序设计
第4页
4.1 关系运算及关系表达式
所谓“关系运算”实际上就是“比较运算”, 即将两个数据进行比较,判定两个数据是否符合 给定的关系。例如,
► “x>y+3”中的“>”表示一个大于关系运算。 ➢如果a的值是5,b的值是1,则大于关系运算
“>”的结果为“真”,即条件成立; ➢如果a的值是2,b的值是1,则大于关系运算
因为按照自左至右的结合方向,先执行关系运算
“a>b”得值为1(“真”),再执行关系运算“1>c”, 得值为0(“假”),因此y为0。
C语言程序设计
C语言switch语句 ——教学案例分析PPT课件一等奖新名师优质课获奖比赛公开课
示式值与某个case后面常量表示式值相等,就执行此case后面语句,执行后遇break语句就退出switch语 句;若圆括号中表示式值与全部case后面常量表示式都不等,则执行default后面语句,然后退出switch语 句,程序流程转向开关语句下一个语句。
4、总结
重点掌握: 掌握switch语句基本格式、了解switch语句执行过程、掌握利用switch语句编写分支选择语句。
“if语句也能处理两个分支,处理多个分支时需使用if-else-if结构,但假 如分支较多,则嵌套if语句层就越多,程序不但庞大而且了解也比较困难, 那么有没有一个专门用于处理多分支结构条件选择语句呢?它就是我们今 天学习内容——switch语句”
2022/3/21
第12页
六、教学内容与步骤设计
(二)提出问题、设计方案(第二节课20分钟) 1.为何要使用switch语句? 2. switch语句基本格式是怎样呢? 3. switch语句与if语句执行流程有什么不一样呢? 4.使用switch注意事项有哪些呢? 5. switch语句适合用于处理什么样问题呢?
第5页
三、教学目标
本堂课三维教学目标分为三类:
01 知识技能性目标 02 过程与方法 03 情感态度与价值观
第6页
三、教学目标
知识技能性目标
1.掌握switch语句格式; 2.了解switch语句执行过程; 3.了解、对比与其它语句不一 样; 4.掌握阅读、调试switch程序 能力; 5. 掌握switch语句实现多分支 选择结构; 6.领悟使用switch语句处理实 际问题。
2、switch语句格式
switch(表示式) {
case 常量表示式1:语句1;....
4、总结
重点掌握: 掌握switch语句基本格式、了解switch语句执行过程、掌握利用switch语句编写分支选择语句。
“if语句也能处理两个分支,处理多个分支时需使用if-else-if结构,但假 如分支较多,则嵌套if语句层就越多,程序不但庞大而且了解也比较困难, 那么有没有一个专门用于处理多分支结构条件选择语句呢?它就是我们今 天学习内容——switch语句”
2022/3/21
第12页
六、教学内容与步骤设计
(二)提出问题、设计方案(第二节课20分钟) 1.为何要使用switch语句? 2. switch语句基本格式是怎样呢? 3. switch语句与if语句执行流程有什么不一样呢? 4.使用switch注意事项有哪些呢? 5. switch语句适合用于处理什么样问题呢?
第5页
三、教学目标
本堂课三维教学目标分为三类:
01 知识技能性目标 02 过程与方法 03 情感态度与价值观
第6页
三、教学目标
知识技能性目标
1.掌握switch语句格式; 2.了解switch语句执行过程; 3.了解、对比与其它语句不一 样; 4.掌握阅读、调试switch程序 能力; 5. 掌握switch语句实现多分支 选择结构; 6.领悟使用switch语句处理实 际问题。
2、switch语句格式
switch(表示式) {
case 常量表示式1:语句1;....
第三讲 分支结构(switch)
空格字符和“转义字符”都作为有效字符输入。 空格字符和“转义字符”都作为有效字符输入。
字符间没有空格) 如:abc ↙ (字符间没有空格) 若在两个字符间插入空格就不对了。 若在两个字符间插入空格就不对了。 如:a b c↙ (字符间有空格) ↙ 字符间有空格)
注意数值型数据与char型数据的混合输入 注意数值型数据与char型数据的混合输入
基本数据类型
——2.7.1 数组(存储方式) ——2.7.1 数组(存储方式)
int
a[0] a[1] a[2] a[3] a[4] arr[1][0] arr[1][1] arr[1][2] arr[0][0] arr[0][1] arr[0][2]
按行存储 a[5]; int arr[2][3];
scanf ("%d%d", &m, &n); scanf ("%c", &ch); 错误输入: 正确输入: 错误输入: 正确输入: 32 28 32 28a a
第3章 结构化程序设计
——3.1.2 数据输入
使用scanf函数应注意: 函数应注意: 使用 函数应注意
double型数据输入时,必须用%lf或%le格式 型数据输入时,必须用 或 格式 型数据输入时 为了减少不必要的输入量, 为了减少不必要的输入量,格式控制中尽量不要出现 普通字符, 普通字符,也不要使用 '\n' 、'\t' 等转义字符 输入数据不能规定精度 scanf (" %7.2f ", &a);是错误的 &a);是错误的 指定数据长度时,系统自动截取。 指定数据长度时,系统自动截取。 scanf(" %3d%3d ", &a, &b); 则当输入123456时 b← 则当输入123456时, a←123, b←456
switch、算法和流程图-OKPPT课件
由3种基本结构组成的算法结构,可以解决任何 复杂的问题,由基本结构组成的算法,是结构化 的算法。
表达式
A处理
B处理
C处理
N处理
2020/11/24
42
算法设计举例 C语言程序设计
例:用程序流程图表示方程的求实解算法。没
有实解打印“没有实解”a2xbxc0
具体步骤为:
1) 输入系数a,b和c
2) b*b-4ac>=0 有实解
分数列: 2/1, 3/2, 5/3, 8/5, 13/8, 21/13...
分析算法:
数列 a/b 初值:a=2, b=1 循环变量:1,2,3...20
将用到的语句:
sum = sum + a/b
t=a; a=a+b; b=t;
2020/11/24
30
C语言程序设计
算法的特点
编写程序,必须学会设计算法。
2020/11/24
23
算法 C语言程序设计
再比如: 求3个整数的最大值mx,并输出
得到mx的具体步骤为: 1) 输入三个整数a,b,c 2) 如果 a大于b 的话,mx=a; 否则 mx=b; 3) 如果 mx大于c 的话,mx=c; 否则不变;
2020/11/24
24
算法 C语言程序设计
可以来源于:
式 为 :
case 常量2:执语行句要2用
...
break 表达式的值=
case 常量n:语句n 常量n
default:语句n+1
}
表达式的值没
2020/11/24
有匹配的常量12
C语言程序设计
注意事项
1 括号内的表达式可以是 int ,char。
表达式
A处理
B处理
C处理
N处理
2020/11/24
42
算法设计举例 C语言程序设计
例:用程序流程图表示方程的求实解算法。没
有实解打印“没有实解”a2xbxc0
具体步骤为:
1) 输入系数a,b和c
2) b*b-4ac>=0 有实解
分数列: 2/1, 3/2, 5/3, 8/5, 13/8, 21/13...
分析算法:
数列 a/b 初值:a=2, b=1 循环变量:1,2,3...20
将用到的语句:
sum = sum + a/b
t=a; a=a+b; b=t;
2020/11/24
30
C语言程序设计
算法的特点
编写程序,必须学会设计算法。
2020/11/24
23
算法 C语言程序设计
再比如: 求3个整数的最大值mx,并输出
得到mx的具体步骤为: 1) 输入三个整数a,b,c 2) 如果 a大于b 的话,mx=a; 否则 mx=b; 3) 如果 mx大于c 的话,mx=c; 否则不变;
2020/11/24
24
算法 C语言程序设计
可以来源于:
式 为 :
case 常量2:执语行句要2用
...
break 表达式的值=
case 常量n:语句n 常量n
default:语句n+1
}
表达式的值没
2020/11/24
有匹配的常量12
C语言程序设计
注意事项
1 括号内的表达式可以是 int ,char。
switch语句.ppt
(续)
例如:要求按照成绩的等级打印出百分制分数 段,可以用switch 语句实现:
switch (grade) {case ‘A’:printf(“85~100\n”); case ‘B’:printf(“70~84\n”); case ‘C’:printf(“60~69\n”); default:printf(“error\n”); }
{ int score; char grade; printf("Input a score(0~100): "); scanf("%d",&score); switch (score/10) {case 10: case 9: printf("grade=A\n");break; case 8: printf("grade=B\n"); break;
分析 二: 1、C语言中没有复数的概念,故将实部和虚部分开定义变量,
输出时,只需注意安排复数的形式 2、共需实型变量9个:a,b ,c ,disc ,x ,x1,x2 ,real,im 3、要使用if…else…的嵌套结构
Gen.c
例3. 求一元二次方程ax2+bx+c=0的解(a≠0)。
#include "math.h" main() { float a,b,c,disc,x1,x2,p,q;
分。路程s越远,每公里运费越低. 标准如下.c5_7.c
S<250km 250<=s<500 500<=s<1000 1000<=s<2000 2000<=s<3000 3000<=s
没有折扣 2%折扣 5%折扣 8%折扣 10%折扣 15%折扣
学习switch语句说课PPT
编程:要求按照 考试成绩的等级 输出百分制分数 段,用switch语 句实现。
完成本次课实验 报告。
设计意图 利用网络资源自主复习
强化训练
引导学生进行实训总结
教学反思
• 优点: 1. VB语言编写的 “爱心礼物”的小程序来帮助学生去
理解多分支结构的作用。 2.用“制作学生成绩管理系统的用户界面”项目来激发
教学过程——第1课时
第二个师生互动环节:任务驱动(突破重点)
教学流程
设计意图
展示任务 上机体验 分析任务 总结规律
任务引领激发学生学习兴趣 尝试让学生小组互助学习,上机调试任务一中的 程序,初次体验Switch语句的应用 帮助学生理解Switch语句的语法格式和执行过程
进一步让学生掌握Switch语句的语法格式
依据
学生程序分析能力和代 码调试能力薄弱的实际 情况。
学情分析
学习能力
•学习习惯较差 •强烈的好奇心和 求知欲 •动手能力较强
•计算机应用基础 •C程序的基本成分 •顺序结构 •if分支结构
知识技 能水平
教学方法
学习行为
•合作交流能力 较强 •能够完成任务
教学目标设计
知识目标
1.学会switch多
教学过程——第1课时
第三个师生互动环节:自主探究(突破难点)
教学流程
排除错误代码
设计意图
加强学生对switch语句的语法格式的理解;提高学生修改
导
代码的能力。
练
拓展的任务
加强对switch语句的执行过程的理解;学习采用switch 语句进行模拟选择操作;为后面做项目做好准备。
教学过程——第1课时
解构
(项目)行动体系 知识体系(教材)
switch语句 ppt
2、switch后面的表达式是一个整型(或字符) 表达式,case后面也必须是一个整型(或字符 )常量表达式。
3、switch语句由若干case语句和可以缺省 default语句组成。
三、bre句中的break语句后,它使程序 流程跳出switch语句,转而执行switch语句后的语句。
LOGO
PPT模板下载:/moban/ 节日PPT模板:/jieri/ PPT背景图片:/beijing/ 优秀PPT下载:/xiazai/ Word教程: /word/ 资料下载:/ziliao/ PPT课件下载:/kejian/ 范文下载:/fanwen/
Switch的流程图和执行过程 break、default的应用 巩固提高
一、swtich语句的一般形式
☞switch(表达式)
{
1. Introduction
case 常量表达式1:语句1;
case 常量表达式2:语句2;
3. C…hallengers Forwad
case 常量表达式n:语句n;
#include "stdio.h"
main( )
{ char c;
scanf("%c",&c);
if(c='A') printf("优秀");
else if(c='B') printf("良好");
else if(c='C') printf("及格");
else if(c='D') printf("不及格");
scanf(“%c”,&p);
switch(p) { case ‘A’:printf(“我想吃苹果”);break;
3、switch语句由若干case语句和可以缺省 default语句组成。
三、bre句中的break语句后,它使程序 流程跳出switch语句,转而执行switch语句后的语句。
LOGO
PPT模板下载:/moban/ 节日PPT模板:/jieri/ PPT背景图片:/beijing/ 优秀PPT下载:/xiazai/ Word教程: /word/ 资料下载:/ziliao/ PPT课件下载:/kejian/ 范文下载:/fanwen/
Switch的流程图和执行过程 break、default的应用 巩固提高
一、swtich语句的一般形式
☞switch(表达式)
{
1. Introduction
case 常量表达式1:语句1;
case 常量表达式2:语句2;
3. C…hallengers Forwad
case 常量表达式n:语句n;
#include "stdio.h"
main( )
{ char c;
scanf("%c",&c);
if(c='A') printf("优秀");
else if(c='B') printf("良好");
else if(c='C') printf("及格");
else if(c='D') printf("不及格");
scanf(“%c”,&p);
switch(p) { case ‘A’:printf(“我想吃苹果”);break;
C语言switch语句 ppt课件
5
{ case 常量表达式1:
语句1
[break]; case 常量表达式2:
(4). 各个case 语句只是一
个入口标号,并不确定执行 的终止点.
语句2 [break];
… case 常量表达式n:
(5). 一般在各个case 语句最后应
该加一break语句, 可使程序流程 跳出Switch结构. 否则会从入口处一直向下执行.
#include <stdio.h> int main( ) {
int day; printf("请输入星期的数字编号(0-6): "); scanf("%d", &day); ….
Ch7_7_1.c
PPT课件
….
表达式有一个确定的 值(不是逻辑值).
10
switch (day)
{ case 0:
无break语句 语句序列n+1
说明:
switch语句不等同于if语句:
8
只进行值的相等性 的检查,不是逻辑判断!
1. switch只能进行值的相等性的检查. 2. if语句不但可以进行相等性的检查, 还可以计算关 系表达式或逻辑表达式,进行逻辑判断的真假.
PPT课件
例7.1 9 键盘输入0-6之间的整数,分别代表每周的星期日、星期一、…、星期 六
以下程序的输出结果是: 24
A. 011122 C. 012020
B. 012 D. 120
int i ;
for(i = 0; i < 3; i++) switch(i)
注意所属关系
{ case 1: printf("%d",i);
C语言经典课件
条件 P
循环条件(P)
循环体(A)
循环Байду номын сангаас A
使用while语句实现循环时,首先判断逻辑量的值,如 语句实现循环时,首先判断逻辑量的值, 使用 语句实现循环时 果逻辑量为1,则首先执行循环体语句, 果逻辑量为 ,则首先执行循环体语句,然后继续判断逻辑 量; 如果逻辑量为0,则结束循环,执行循环的后续语句。 如果逻辑量为 ,则结束循环,执行循环的后续语句。
语句进行switch语句的强制跳出, 语句的强制跳出, (4)若无 )若无break语句进行 语句进行 语句的强制跳出 则从该处顺序执行其余语句,直至跳出或执行结束; 则从该处顺序执行其余语句,直至跳出或执行结束 (5)case和其后的整型常量表达式中间应有空格 。 ) 和其后的整型常量表达式中间应有空格
switch语句 4.5 switch语句
M
如果题目中的多条件是有规律的,则可以采用 switch语句来实现。 语句来实现。 语句来实现 switch语句称为分支语句,又称为开关语句。 语句称为分支语句, 语句称为分支语句 又称为开关语句。 switch的具体形式如下: 的具体形式如下: 的具体形式如下 switch(表达式 表达式) 表达式 { case 整型常量表达式 :语句组 [break] 整型常量表达式1:语句组1 case 整型常量表达式 :语句组 [break] 整型常量表达式2:语句组2 case 整型常量表达式 :语句组 [break] 整型常量表达式n:语句组n default :语句组 语句组n+1 }
例 5.2 求n! !
#include"stdio.h" main() { int a,i,n; float c; c=1; i=2; scanf("%d",&n); while(i<=n) { c=c*i; i++; } printf("%d的阶乘 的阶乘=%f",n,c); 的阶乘 }
(C++语言程序设计)第04讲--switch语句
的值赋值给变量,否则将表达式3的 值赋值给变量。 例:
max=a>b?a:b ABS=x<0?-x:x
3
注意: 1. 条件运算符高于赋值运算符,低于逻辑
运算符、关系运算符和算术运算符 2. 条件运算符结合性为从右至左。 3. 条件表达式不能取代一般的if语句,只有
当if的两个分支为给同一变量赋值时才可 替代if。
else if(s>=60) cout<<"D\n";
else
cout<<"E\n";
12
【分析】
❖ 使用switch语句,当然最笨的办法是每一个分数一 个case分支,将需要101个分支,显然这种程序不 值得推荐。那么有没有简化的办法呢? 其实,任何好的算法都是对问题分析和提炼的结果。 ➢题目中60分以上都是每10分一个层次,60分以 下是一个层次。只要把每个层次的共性找到就 容易找到简化程序的办法了。 ➢以60~69为例。每个分数的十位数都是6,对 于该层次的成绩,整除10的结果都是6。同样对 于70~79、80~89、90~99都是一样。而60 分以下的成绩整除10的结果都小于6。
11
【提示】用s表示分数,其值由用户输入,考虑 分数输入不合法的情况。
if( s<0 || s>100) cout<<"Input data error\n";
else if(s>=90) cout<<"A\n";
else if(s>=80) cout<<"B\n";
else if(s>=70) cout<<"C\n";
max=a>b?a:b ABS=x<0?-x:x
3
注意: 1. 条件运算符高于赋值运算符,低于逻辑
运算符、关系运算符和算术运算符 2. 条件运算符结合性为从右至左。 3. 条件表达式不能取代一般的if语句,只有
当if的两个分支为给同一变量赋值时才可 替代if。
else if(s>=60) cout<<"D\n";
else
cout<<"E\n";
12
【分析】
❖ 使用switch语句,当然最笨的办法是每一个分数一 个case分支,将需要101个分支,显然这种程序不 值得推荐。那么有没有简化的办法呢? 其实,任何好的算法都是对问题分析和提炼的结果。 ➢题目中60分以上都是每10分一个层次,60分以 下是一个层次。只要把每个层次的共性找到就 容易找到简化程序的办法了。 ➢以60~69为例。每个分数的十位数都是6,对 于该层次的成绩,整除10的结果都是6。同样对 于70~79、80~89、90~99都是一样。而60 分以下的成绩整除10的结果都小于6。
11
【提示】用s表示分数,其值由用户输入,考虑 分数输入不合法的情况。
if( s<0 || s>100) cout<<"Input data error\n";
else if(s>=90) cout<<"A\n";
else if(s>=80) cout<<"B\n";
else if(s>=70) cout<<"C\n";
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
{ 缩进 再次缩进
case 常量1: 语句系列1;
复合语句开始 以冒号结束
[break;] case 常量2:
ቤተ መጻሕፍቲ ባይዱ语句系列2;
以冒号结束
[break;]
.
. case 常量n:
语句系列n;
以冒号结束
缩进
[break;]
[default:] [语句 n+1;]
以冒号结束
}
switch和复合语句结束
§9.3
C语言程序设计
第九课 switch-case 多分支开路语句
§9.1 switch-case 语句
在编写应用程序时,在必须从很多可以的选项中选择一组指 令的地方,可以使用 if-else 链。在将一个整数表达式的值 与特定的值进行比较时,可以使用 switch-case 语句来替代 if-else 链。switch-case 语句的常规格式如下:
switch(整型表达式)
{ case 常量1: 语句系列1; [break;] case 常量2: 语句系列2; [break;]
.
.
case 常量n: 语句系列n; [break;]
[default:]
[语句 n+1;]
}
§9.2 switch-case 常规书写格式
switch(整型表达式)
§10.6 break 关键字
一旦通过 switch 语句确定了入口点,所有进一步的 case 赋值都会被忽略,并且,除非遇到关键字 break,否则 执行将一直持续到复合语句结束,这就是采用 break 语句的 原因,它将标识特定 case 的结束,并使得立即退出 switch 语句,因此,就像关键字 case 标识复合语句中可以存在的起 始点一样,break 语句将确定终止点。如果省略了 break 语 句,那么匹配的 case 值后的所有情况(包括 default 情 况)都会被执行。
switch(整型表达式)
{ case 常量1:
若表达式等于常量1,则从这里开始
.
.
[break;]
case 常量2:
若表达式等于常量2,则从这里开始
.
.
[break;]
.
.
case 常量n:
若表达式等于常量n,则从这里开始
.
[break;]
[default:]
若所有常量都不匹配,则从这里开始
.
}
switch(整型表达式)
{
case 常量表达式1:
若表达式等于常量1,则从这里开始
.
. [break;] 跳出
case 常量表达式2:
若表达式等于常量2,则从这里开始
.
. [break;] 跳出
.
.
case 常量表达式n:
若表达式等于常量n,则从这里开始
.
[break;] 跳出
[default:]
若所有常量都不匹配,则从这里开始
.
}
//switch 语句结束
开始
输出菜单
提示用户输入选择 接收用户的输入 (key)
1、修改密码 2、转帐 3、存款 4、取款 5、查询余额 6、退出
key
1 修改密码
2 转帐
3 存款
4 取款
5
6
查询余额
其他
退出
输出出错
输出“谢谢您使用本 银行的服务!”
结束
//模拟ATM机菜单系统程序片段(完整程序请参考 ex09_02.c)
switchcase 执 行流程图
计算表达式的值
常量表达式1
语句系列 1
常量表达式2
语句系列 2
常量表达式3
语句系列 3
常量表达式n
语句系列 n
default
语句系列
break break break break break
§9.4 switch 和 case 关键字
在 switch-case 语句中有4个新的关键字:switch、 case、default 和 break,下面分别给予介绍。
关键字 switch 标识 swithc-case 语句的开始。该关 键字后的圆括号内的整型表达式将得到赋值,然后将该表达式 的结果与复合语句内包含的各种可以的值依次进行比较。 swith 语句中的表达式必须被指定为整数结果值,否则将会出 现编译错误。在 switch-case 语句内,关键字 case 被用 来标识或标记与 switch 表达式的值进行比较的每个值。
//switch 语句结束
//模拟ATM机菜单系统程序片段(完整程序请参考 ex09_01.c)
//执行各个分支 switch( key ) {
case 1:
case 2:
case 3:
case 4:
case 5:
case 6:
default:
}
printf("您执行的是修改密码操作!\n"); printf("您执行的是转帐操作!\n"); printf("您执行的是存款操作!\n"); printf("您执行的是取款操作!\n"); printf("您执行的查询余额操作!\n"); printf("系统退出!\n"); printf("您选择了一个错误的操作!\n");
printf("您选择了一个错误的操作!\n");
/* 执行下列程序(ts09_01.c,输入为 1 时运行结果是_____, 输入为 2 时运行结果是_____。*/
switch 表达式的值与这些 case 值依次进行比较,直到 找到匹配的值。当找到匹配值时,执行将从紧跟着该匹配值的 语句开始,因此,如下所示,表达式的值决定了在 switch 语 句中执行实际开始的位置:
§9.5 default 关键字
在一个 switch 语句中可以采用任意顺序来包含任意数目 的 case 标签。但是,如果表达式的值与所有 case 值都不 匹配,那么将不执行任何语句,除非遇到关键字 default。关 键字 default 是可选的,并且它与 if-else 链中的最后一 个 else 的作用相同。
//执行各个分支 switch( key ) {
case 1:
case 2:
case 3:
case 4:
case 5:
case 6:
default:
}
printf("您执行的是修改密码操作!\n");
break;
//跳出switch语句
printf("您执行的是转帐操作!\n");
break;
//跳出switch语句
printf("您执行的是存款操作!\n");
break;
//跳出switch语句
printf("您执行的是取款操作!\n");
break;
//跳出switch语句
printf("您执行的查询余额操作!\n");
break;
//跳出switch语句
printf("系统退出!\n");
break;
//跳出switch语句