精品-清华大学C语言课件 第7章03 switch语句
清华大学C语言教学课件(共16个PPT)第1个共26页文档
53、 伟 大 的 事 业,需 要决心 ,能力 ,组织 和责任 感。 ——易 卜 生 54、 唯 书 籍 不 朽。——乔 特
55、 为 中 华 之 崛起而 读书。 ——周 恩来
清华大学C语言教学课件(共16个PPT)
第1个
21、没有人陪你走一辈子,所以你要 适应孤 独,没 有人会 帮你一 辈子, 所以你 要奋斗 一生。 22、当眼泪流尽的时候,留下的应该 是坚强 。 23、要改变命运,首先改变自己。
24、勇气很有理由被当作人类德性之 首,因 为这种 德性保 证了所 有其余 的德性 。--温 斯顿. 丘吉尔 。 25、梯子的梯阶从来不是用来搁脚的 ,它只 是让人 们的脚 放上一 段时间 ,以便 让别一 只脚能 够再往 上登。
C语言全套课件(清华大学出版社) PPT
2.1 算法的概念
为了有效地进行解题,不仅需要保证 算法正确,还要考虑算法的质量,选择合 适的算法。希望方法简单,运算步骤少。 计算机算法可分为两大类别: • 数值运算算法:求数值解,例如求方程的 根、求函数的定积分等。 • 非数值运算:包括的面十分广泛,最常见 的是用于事务管理领域,例如图书检索、 人事管理、行车调度管理等。
1.3 简单的C语言程序介绍
注意:
函数的声明部分和执行部分都可缺省,例如:
void dump ( ) { }
这是一个空函数,什么也不做,但是合法的函数。
1.3 简单的C语言程序介绍
小结:
(3) C程序总是从main函数开始执行的,与main函数 的位置无关。 (4) C程序书写格式自由,一行内可以写几个语句, 一个语句可以分写在多行上,C程序没有行号。 (5) 每个语句和数据声明的最后必须有一个分号。 (6) C语言本身没有输入输出语句。输入和输出的操 作是由库函数scanf和printf等函数来完成的。C对 输入输出实行“函数化”。
S1:使p=1。 S2:使i=2 S3:使p×i,乘积仍放在变量p中,可表示为:p×ip S4:使i的值加1,即i+1i S5:如果i不大于5,返回重新执行步骤S3以及其后 的步骤S4和S5;否则,算法结束。最后得到p的值就 是5!的值。
如果题目改为:求1×3×5×……×1000 算法只需作很少的改动: S1:1→p S2:3 → i S3:p×i → p S4:i+2 → p S5:若i≤11,返回S3。否则,结束。
1.1C语言出现的历史背景 • 1983年,美国国家标准化协会(ANSI)根据C语 言各种版本对C的发展和扩充,制定了新的标 准ANSI C ,比标准C有了很大的发展。 • 1988年K & R按照 ANSI C修改了他们的《The C Programming Language》。 • 1987年,ANSI公布了新标准——87 ANSI C。 • 1990年,国际标准化组织接受了87 ANSI C为 ISO C 的标准(ISO9899—1990)。 • 1994年,ISO又修订了C语言标准。 • 目前流行的C语言编译系统大多是以ANSI C为 基础进行开发的。
c语言switch 关系运算
C语言中的switch关系运算1.概述C语言是一种广泛应用的程序设计语言,而switch关系运算则是其中一项重要的特性。
本文将从switch语句的基本语法开始介绍,然后深入探讨其在关系运算中的应用。
2.switch语句的基本语法switch语句是C语言中的一种选择结构,其基本语法如下:```cswitch (表达式){case 值1:语句1;break;case 值2:语句2;break;...default:默认语句;}```其中,表达式可以是整型或字符型,case后面的值必须是整型或字符型常量,break语句用于结束当前case分支的执行,default分支可选。
3.switch语句的执行流程当程序执行到switch语句时,首先计算表达式的值,然后根据该值选择相应的case分支执行,直到遇到break语句或switch语句结束。
如果未匹配任何case值,则执行default分支,如果没有default分支,则直接跳出switch语句。
4.switch关系运算除了普通的switch选择结构外,switch语句还可以用于关系运算。
在C语言中,可以使用switch语句来处理特定的关系运算,比如判断某个值是否在某个范围内。
以判断成绩等级为例,假设成绩为score,我们可以使用switch语句来判断成绩等级:```cswitch (score / 10){case 10:case 9:printf("成绩为A\n");break;case 8:printf("成绩为B\n");break;case 7:printf("成绩为C\n");break;case 6:printf("成绩为D\n");break;default:printf("成绩为E\n");}```在这个例子中,我们将成绩除以10,根据商的值来判断成绩等级。
第7周单元设计Switch语句及程序举例
《C语言程序设计》课程单元教学设计课程单元教学设计基本框架第一部分:组织教学和复习上次课主要内容(时间: 3 分钟)C语言中,if-else语句能实现多分支结构的程序设计,但是如果分支较多,则嵌套的if语句层就越多,由此编写的程序不够直观,难以理解,给编程和阅读带来了很大的困难。
第二部分:学习新内容【步骤一】说明主要教学内容、目的(时间:2 分钟)教学内容:Switch语句是一种分支控制语句,它的应用在程序设计中起到了很重要的作用。
教学目的:1、掌握用Switch语句实现选择结构2、学会用Switch语句来解决实际问题【步骤二】学一学、试一试(时间:15分钟)学一学:Switch语句C语言还提供了另一种用于多分支选择的switch语句,其一般形式为:switch(表达式){case常量表达式1: 语句1;case常量表达式2: 语句2;…case常量表达式n: 语句n;default:语句n+1;}其语义是:计算表达式的值。
并逐个与其后的常量表达式值相比较,当表达式的值与某个常量表达式的值相等时,即执行其后的语句,然后不再进行判断,继续执行后面所有case后的语句。
如表达式的值与所有case后的常量表达式均不相同时,则执行default后的语句。
试一试:•问题3.9 编一程序可查询驾驶证可以驾驶的车辆类型。
要求从键盘输入驾照的类型。
比如输入驾照类型‘C’,输出“你可以驾驶小轿车”。
其中,A牌驾照可驾驶大客车、人货车和小轿车,B牌驾照可驾驶人货车和小轿车,C牌驾照可驾驶小轿车,D 牌驾照可驾驶摩托车。
•【解题步骤】1.定义字符变量chLicence用来存放驾照类型代码;2.从键盘输入一个字符放chLicence;3.根据chLisence中的值,输出相应的准驾车型。
【程序代码】#include "stdio.h"void main(){ char chLicence;printf("please input your driving licence:");scanf("%c",&chLicence);switch(chLicence){case 'A':printf("you can drive bus,car,truck..");break;case 'B':printf("you can drive truck,car ");break;case 'C':printf("you can drive car.");break;case 'D':printf("you can drive autobike only.");break;default:printf("input error!!");}getch();}【步骤三】练一练(时间:25分钟)问题:将星期一、星期二…星期六、星期日依次编号为1、2…6、7,编一程序从键盘输入星期的序号,可输出其对应的英文。
switch语句的用法c语言例子
switch语句的用法c语言例子在C语言中,switch语句被广泛用于根据不同的条件执行不同的代码块。
它可以有效地代替复杂的if-else语句,使程序更加简洁和易于理解。
本文将通过例子来介绍switch语句的用法,以帮助读者更好地掌握这个常用的编程结构。
在C语言中,switch语句的基本语法是:```cswitch (expression) {case constant1:code block 1;break;case constant2:code block 2;break;...default:code block;}```下面,我们通过几个具体的例子来说明switch语句的用法。
例子1:判断星期几```c#include <stdio.h>int main() {int day;printf("请输入数字1-7表示星期几:"); scanf("%d", &day);switch (day) {case 1:printf("星期一\n");break;case 2:printf("星期二\n");break;case 3:printf("星期三\n");break;case 4:printf("星期四\n");break;case 5:printf("星期五\n");break;case 6:printf("星期六\n");break;case 7:printf("星期日\n");break;default:printf("输入错误!\n");break;}return 0;}```在这个例子中,我们通过输入一个数字(1-7)来判断对应的星期几,并输出相应的结果。
通过switch语句,我们可以根据不同的输入值执行不同的代码块。
C语言switch语句 ——教学案例分析PPT课件一等奖新名师优质课获奖比赛公开课
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;....
c语言中的switch用法
c语言中的switch用法C语言中的switch用法是程序设计中常用的一种结构,它使用一个表达式来选择多个执行路径中的一个。
通过它,我们可以根据不同的条件执行不同的操作。
在本文中,我将一步一步回答关于C语言中switch用法的问题。
1. switch语句的基本结构是什么?switch语句由switch关键字、一个表达式、若干个case语句和一个可选的default语句组成。
其基本结构如下所示:switch (expression) {case constant1:执行语句break;case constant2:执行语句break;...default:执行语句}2. switch语句的执行流程是怎样的?当程序执行到switch语句时,首先会计算表达式的值,然后将该值与case 语句中的常量进行比较,如果匹配成功,就执行相应的语句直到遇到break 语句或switch语句结束。
如果没有匹配成功的case语句,就会执行default语句(如果存在),或者直接跳过switch语句。
3. case语句中的常量可以是哪些类型?case语句中的常量可以是整数常量、字符常量、枚举常量或者常量表达式。
它们在不同的case语句中不能重复。
4. switch语句中的表达式可以是什么类型?switch语句中的表达式可以是整数类型(包括char、short、int和long),字符类型(char)或者枚举类型。
在C99标准中,它还可以是指针类型。
5. case语句中可以使用浮点数作为常量吗?在标准的C语言中,case语句中只能使用整数类型、字符类型或者枚举类型的常量。
不能使用浮点数。
6. 在case语句中使用break语句有什么作用?在switch语句中,break语句用来终止当前的case语句块,并跳转到switch语句块外面,从而避免执行其他case语句。
如果不使用break语句,程序会继续执行下一个case语句,直到遇到break语句或者switch 语句结束。
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%折扣
c语言中switch用法
c语言中switch用法在C语言中,`switch`语句用于根据不同的条件值执行相应的代码块。
`switch`语句可以替代使用多个`if-else`语句,使代码更加简洁和可读性更高。
`switch`语句的基本语法如下:```cswitch(expression) {case constant1:// code block 1break;case constant2:// code block 2break;case constant3:// code block 3break;...default:// code block for any other value}````expression`是被比较的表达式,通常是一个整数或字符类型的变量或表达式。
`case`后面是一个常量或表达式,用于匹配`expression`的值。
如果匹配成功,则执行与之对应的代码块,直到遇到`break`语句为止。
如果没有匹配的`case`,则执行`default`后的代码块(可选)。
以下是一些使用`switch`语句的示例:```cint day = 3;switch (day) {case 1:printf("Monday\n");break;case 2:printf("Tuesday\n");break;case 3:printf("Wednesday\n");break;case 4:printf("Thursday\n");break;printf("Friday\n");break;default:printf("Weekend\n"); }// 输出:Wednesdaychar grade = 'B';switch (grade) {case 'A':printf("Excellent\n"); break;case 'B':case 'C':printf("Good\n");break;case 'D':printf("Pass\n");break;case 'F':printf("Fail\n");break;printf("Invalid grade\n");}// 输出:Good```在`switch`语句中,每个`case`的常量值必须是唯一的,不能重复。
switch语句 ppt
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语言基础switch语句实验原理
c语言基础switch语句实验原理switch语句是C语言中的一种条件控制语句,它根据表达式的值选择性执行对应的代码块。
本文将以C语言基础switch语句实验原理为题,分析其工作原理,并列举一些例子来说明switch语句的使用方法和注意事项。
一、switch语句的基本语法和工作原理switch语句的基本语法如下所示:```cswitch (expression){case constant1:// 执行语句1break;case constant2:// 执行语句2break;...default:// 执行默认语句break;}```switch语句中的expression是一个整型表达式,它的值将与每个case后的常量进行比较,当找到匹配的case时,将执行对应的语句块。
如果没有找到匹配的case,则执行default语句块(如果有),如果没有default语句块,则直接跳过switch语句。
二、switch语句的使用方法和注意事项1. case后的常量必须是整型或字符型常量,不允许使用变量或表达式。
2. case后的常量值不能重复,否则会报错。
3. 每个case后面必须使用break语句或其他跳转语句来结束当前case的执行,否则会继续执行下一个case的语句块。
4. default语句块是可选的,如果没有匹配的case,将执行default语句块中的代码。
5. switch语句可以嵌套在其他语句中,也可以包含其他语句,但是每个case中的语句块不能包含其他switch语句。
6. switch语句中的expression表达式的值可以是整型变量、整型常量、字符型变量或字符型常量。
7. switch语句中的expression表达式的值与case后的常量进行比较时,使用的是“值相等”的比较方式,而不是“地址相等”。
8. 一个switch语句可以有多个case,但是它们的常量值不能重复,否则会报错。
精品-清华大学C语言课件 第7章04 if else语句和switch语句的区别
俗话说的好:“杀鸡焉用宰牛刀。”这句非常适合用来形容if……else语句,使用if……else语句, 就算是再复杂的逻辑判断都可以实现,功能及其强大。使用switch语句能够实现的分支选择语句,用if 都能实现,而且switch语句不能实现的程序,用if……else也能实现。
#include<stdio.h> int main() { int iMonth=0,iDay=0;/*定义变量*/ printf("请输入您想知道的所包含日期数的月份:\n");/*提示信息*/ scanf("%d",&iMonth);/*输入数据*/ switch(iMonth)/*检验变量*/ {/*多路开关模式switch语句进行检验*/ case 1:/*1表示一月份*/ case 3: case 5: case 7: case 8: case 10: case 12: iDay=31;/*为iDay赋值为31*/ break;/*跳出switch结构*/ case 4: case 6: case 9: case 11: iDay=30;/*为iDay赋值为30*/ break;/*跳出switch结构*/ case 2: iDay=28;/*为iDay赋值为28*/ break;/*跳出switch结构*/ default:/*默认情况*/ iDay=-1;/*赋值为-1*/ break;/*跳出switch结构*/ } if(iDay==-1)/*使用if语句判断iDay的值*/ { printf("您的输入有误!\n"); } else/*默认的情况*/ { printf("2011年%d月份 有 %d 天\n",iMonth,iDay); } return 0; }
C语言switch语句讲课教案
Ch7_7_4.c
21:49:39
…. switch(ch)
表达式有一个确定的 值(不是逻辑值).
{ case 'y':
多个case可共用 一组执行语句.
case 'Y':
printf("this is 'Y' or 'y'. \n");
表达式后都有 一冒号”:” .
case ‘1’:
…. case ‘8’: case ‘9’:
这里有 一个空格.
digit ++ ;
break ;
case ‘ ’:
case ‘\n’:
case ‘\t’:
white++ ; break ;
default :
character++; break;
}
(2). 关于常量表达式1~n: 只起到 一个标号的作用,根据表达式的值来 判断, 找到一个相匹配的入口处,程 序往下执行。
各个case后的常量表达式的值 必须互不相同.
[break];
[default: 语句n+1]
(3). 每个case分支可有多条语句 ,可不用花括号{ }。
}
21:49:39
switch(表达式 ) { case 常量表达式1:
switch 语句
21:49:39
7.1 switch 语句:
switch 语句是一条多分支选择语句. 在实际应用中,要在多种情况中选择一种情况,执行某 一部分语句。 当然可以使用嵌套的if , if else if语句来处理,但其分支 过多,程序冗长,难读, 不够灵巧。
switch、算法和流程图-OKPPT课件
表达式
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。
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); 的阶乘 }
第三讲 分支结构(switch)
注意:
条件表达式的类型 和常量表达式的类 型必须一致。
switch (表达式) { case 常量表达式1: 语句序列1 case 常量表达式2: 语句序列2 …… case 常量表达式n: 语句序列n default : 语句序列n+1 }
switch语句的书写格式:
语句体本身必须用花括号括起; case和default后面有多条语句,可以不必使用花括号; case和常量表达式之间必须有空格; default可以写在语句体的任何位置,也可以省略不写 任意两个case的常量表达式值不能相同。
注意数值型数据与char型数据的混合输入
scanf ("%d%d", &m, &n); scanf ("%c", &ch); 错误输入: 正确输入: 3228 3228a a
第3章 结构化程序设计
——3.1.2 数据输入
使用scanf函数应注意:
double型数据输入时,必须用%lf或%le格式 为了减少不必要的输入量,格式控制中尽量不要出现 普通字符,也不要使用 '\n' 、'\t' 等转义字符 输入数据不能规定精度 scanf (" %7.2f ", &a);是错误的 指定数据长度时,系统自动截取。 scanf(" %3d%3d ", &a, &b); 则当输入123456时, a123, b456
当a等于5,输出:&#$ 当a等于2,输出:#$ 当a是其他值,输出:$
2013-6-24
3.2.2 开关选择语句(switch)
switch语句是多分支选择语句,也叫开关语句或者 选择语句。 switch语句的一般形式
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
运行程序,显示效果如图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; }
#include<stdio.h>
int main() { char cGrade;/*定义变量表示分数的级别*/ printf("请输入你的级别:\n");/*提示信息*/ scanf("%c",&cGrade);/*输入分数的级别*/ printf("级别情况是:");/*提示信息*/ switch(cGrade)/*switch语句判断*/ { case 'A':/*分数级别为A的情况*/ printf("90~100\n");/*输出分数段*/ break;/*跳出*/ case 'B':/*分数级别为B的情况*/ printf("80~89\n");/*输出分数段*/ break;/*跳出*/ case 'C':/*分数级别为C的情况*/ printf("70~79\n");/*输出分数段*/ break;/*跳出*/ case 'D':/*分数级别为D的情况*/ printf("60~69\n");/*输出分数段*/ break;/*跳出*/ case 'F':/*分数级别为F的情况*/ printf("<60\n");/*输出分数段*/ break;/*跳出*/ default:/*默认情况*/ printf("输入有误!\n");/*提示错误*/ break;/*跳出*/ }
#include<stdio.h> int main() { int iDay=0;/*定义变量表示输入的星期*/ printf("请输入星期时:\n");/*提示信息*/ scanf("%d",&iDay);/*输入星期*/ switch(iDay) { case 1:/*iDay的值为1时*/ printf("公司开会\n"); break; case 2:/*多路开关模式*/ case 3: case 4: case 5: printf("和同事一起工作\n"); break; case 6:/*iDay的值为6时*/ printf("和朋友去逛街\n"); break; case 7:/*iDay的值为7时*/ printf("在家陪家人\n"); break; default:/*iDay的值错误时*/ printf("输入有误!!\n"); } return 0; }
图7.18 不添加break的情况 从运行的结果中可以看出,当去掉break语句后,会将case检验相符情况后的所有语句进行输出。所 以在case语句中break语句是不能缺少的。
实例4 使用多路开关模式编写日程安排程序
在本实例中,要求将操作相同的检验结果使用多路开关的模式进行编写,当输入不正确的日期时进行 错误提示。
可以看到如果在case 2后不使用break语句,那么符合检验时与符合case 3检验时的效果是一样的。 也就是说使用多路开关模式,使得多种检验条件使用一种解决方式。
实例3 使用switch语句输出分数段
本实例中,要求按照考试成绩的等级输出百分之分数段的范围,其中要使用switch语句进行判断分数 的情况。
switch语句
本讲大纲
1.switch语句的基本形式 2.多路开关模式的switch语句 实例3 使用switch语句输出分数段 实例4 使用多路开关模式编写日程安排程序
switch语句的基本形式
switch语句是多分支选择语句。例如,如果只需要检验某一个整型变量的可能取值,那么可以用更简 便的switch语句。switch语句的一般形式:
printf("Error\n");
break;
}
【例7.9】 使用switch语句修改日程安排程序。 在实例7.8中,使用嵌套的if语句形式编写了日程安排程序,要求使用switch语句对程序进行修改。
#include<stdio.h> int main() { int iDay=0;/*定义变量表示输入的星期*/ printf("请输入星期时:\n");/*提示信息*/ scanf("%d",&iDay);/*输入星期*/ switch(iDay) { case 1:/*iDay的值为1时*/ printf("公司开会\n"); break; case 6:/*iDay的值为6时*/ printf("和朋友去逛街\n"); break; case 7:/*iDay的值为7时*/ printf("在家陪家人\n"); break; default:/*iDay的值为其他情况时*/ printf("和同事一起工作\n"); break; } return 0; }
这里可以将switch形象的比喻成一个提供饮品的投币机,可以将case语句看成该机器提供的多种不同 口味的饮料,表达式的值可以看成用户选择的一种口味,当选择完某种口味后便可取到相应的饮料,而出 来饮料的这个过程就相当于case后面对应的语句。 说明:
switch语句检验的条件必须是一个整型表达式,这意味着其中也可以包含运算符和函数调用。而case 语句检验的值必须是整型常量,也就是说可以是常量表达式或着常量运算。 通过一段代码再来分析一下switch语句的使用,如下面的代码:
在使用switch语句时,每一个case情况中都要使用break语句。如果不是用break语句会出现什么情况 呢?先来看一下break的作用,break使得执行完case语句后跳出switch语句。进行一下猜测,如果没有 break语句的话说明,程序可能会将后面的内容都执行。为了验证猜测是否正确,将上面的程序中的break 注释掉。还是输入字符'B',运行程序,显示结果如下图7.18所示。
运行程序,显示效果如图7.16所示。
图7.16 修改日程安排程序 在程序中,使用switch语句将原来的if语句都去掉,使得程序的结构看起来比较清晰,易于观察。 在使用case进行检验值的时候,不要忘记case检验的条件只能是常量或者常量表达式,所以在这里不能 对变量进行检验。
多路开关模式的switch语句
switch(selection)
{
case 1:
printf("Processing Receivables\n");
break;
case 2:
printf("Processing Payables\n");
break;
case 3:
printf("Quitting\Байду номын сангаас");
break;
default: