switch语句的应用ppt课件

上传人:我*** 文档编号:148529469 上传时间:2020-10-20 格式:PPT 页数:40 大小:267KB
返回 下载 相关 举报
switch语句的应用ppt课件_第1页
第1页 / 共40页
switch语句的应用ppt课件_第2页
第2页 / 共40页
switch语句的应用ppt课件_第3页
第3页 / 共40页
switch语句的应用ppt课件_第4页
第4页 / 共40页
switch语句的应用ppt课件_第5页
第5页 / 共40页
点击查看更多>>
资源描述

《switch语句的应用ppt课件》由会员分享,可在线阅读,更多相关《switch语句的应用ppt课件(40页珍藏版)》请在金锄头文库上搜索。

1、第 七 章 switch 语句的应用,7.1 switch 语句: switch 语句是一条多分支选择语句. 在实际应用中,要在多种情况中选择一种情况,执行某一部分语句。 当然可以使用嵌套的if , if else if语句来处理,但其分支过多,程序冗长,难读, 不够灵巧。,switch语句是C语言中处理多路选择问题的一种更直观和有效的手段. 在测试某个表达式是否与一组常量表达式中的某一值相配时,switch语句显得更为方便.,一般形式如下:,switch(表达式 ) case 常量表达式1: 语句1 break; case 常量表达式2: 语句2 break; case 常量表达式n: 语句

2、n break; default: 语句n+1 ,说明: (1). 关于表达式: 表达式可以是整型、字符型等表达式。 有一个确定的值(不是逻辑值).,(2). 关于常量表达式1n: 只起到一个标号的作用,根据表达式的值来判断, 找到一个相匹配的入口处,程序往下执行。 各个case后的常量表达式的值必须互不相同.,(3). 每个case分支可有多条语句,可不用花括号 。,switch(表达式 ) case 常量表达式1: 语句1 break; case 常量表达式2: 语句2 break; case 常量表达式n: 语句n break; default: 语句n+1 ,(4). 各个case 语

3、句只是一个入口标号,并不确定执行的终止点.,(5). 一般在各个case 语句最后应该加一break语句, 可使程序流程跳出Switch结构. 否则会从入口处一直向下执行.,(6). 各个case和default出现的先后次序,并不影响执行结果. default可以没有.,(7). 多个case可共用一组执行语句. 例如为了统计一段文字中的数字,字母及分隔符的个数, 可用下列程序段实现:,switch(ch) case 0: case 1: . case 8: case 9: digit + ; break ; case : case n: case t: white+ ; break ; d

4、efault : character+; break; ,这里有一个空格.,表达式后都有一冒号”:” .,无break语句,switch(表达式),说明:,switch语句不等同于if语句: 1. switch只能进行值的相等性的检查. 2. if语句不但可以进行相等性的检查, 还可以计算关系表达式或逻辑表达式,进行逻辑判断的真假.,只进行值的相等性 的检查,不是逻辑判断!,例7.1 键盘输入0-6之间的整数,分别代表每周的星期日、星期一、星期六,#include int main( ) int day; printf(请输入星期的数字编号(0-6): ); scanf(%d, .,Ch7_7

5、_1.c,. switch (day) case 0: printf(星期日 n); break; 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; default: printf(输入有误,请输入0-6之间的数字!n); return 0; ,每个case分支可有多条语句,可不用花括号

6、,也可以用。,表达式有一个确定的值(不是逻辑值).,例7.2 求执行下列程序段后k的值 #include int main() char c=2; int k=1; switch (c+1-0) case 2: k+=1; case 2+1: k+=2; case 4: k+=3; printf(k=%dn,k); return 0; ,一般在各个case 语句最后应该加一break语句, 可使程序流程跳出Switch结构. 否则会从入口处一直向下执行.,0的ASCII值为48.,Ch7_7_2.c,例7.3 执行下列程序,当分别输入A、B、C、E时,求K的值. char c; int k=2

7、; scanf(“%c”, ,Ch7_7_3.c,例7.4 输入一字符,如果是Y, N或y, n,则分别执行一输出语句,如果是其他字母则执行另一输出语句。,#include void main() char ch; printf(Please input Y/N (y/n): ); scanf(%c, .,Ch7_7_4.c,. switch(ch) case y: case Y: printf(this is Y or y. n); break; case n: case N: printf(this is N or n. n); break; default: printf(this is

8、 other char. n); ,多个case可共用一组执行语句.,表达式有一个确定的值(不是逻辑值).,例7.5 编写程序,实现如下功能。 输入一个实数后,屏幕显示如下菜单: 1. 输出相反数 2. 输出平方数 3. 输出平方根 4. 退出,#include void main() int i, c=5; float m; printf(输入任意一个整型数:n); scanf(%f, ,Ch7_7_5.c,. while(1) scanf(%d, ,Ch7_7_5.c,例7. 6 根据输入字符(0-9及A-F(af)显示与该字符所表示的十六进制数相对应的十进制数。 (例如,输入A,输出10

9、,输入0,输出0),#include #include int main( ) char ch; for(; ; ) printf(“n请输入十六进制数 0 F ( 输入Q 或 q 退出): ); scanf(%c, .,当输入一个字符,打一个回车后,输入结束. 但在输入缓冲区中存在二个字符:输入的字符,还有一个是n.,当打了一个回车后(其实是二个动作:回车,换行. c语言会把回车,换行自动转换为n.反之亦然.,switch( ch ) case 0: case 1: case 2: case 3: case 4: case 5: case 6: case 7: case 8: case 9:

10、 printf(十进制数: %dn, ch-0); break; case A: case B: case C: case D: case E: case F: printf(十进制数: %dn, ch-55); break; ,Ch7_7_6.c,ASCII值:0 48A 65a” 97,case a: case b: case c: case d: case e: case f: printf(十进制数: %dn, ch-87); break; case Q: case q: printf(退出程序n); exit(0); default: printf(输入有误!); return 0;

11、 ,ASCII值:0 48A 65a” 97,示例: 输入10个字符,分别统计出其中空格或回车、数字和其他字符的个数。,void main( ) int blank, digit, i, other; char ch; blank = digit = other = 0; printf(input 10 characters: ); .,for(i = 1; i = 10; i+) ch = getchar(); switch (ch) case : case n : blank +; break; case 0 : case 1 : case 2 : case 3: case 4 : cas

12、e 5 : case 6 : case 7 : case 8 : case 9 : digit +; break; default: other +; break; printf(“blank=%d, digit=%d, other=%dn”, blank, digit, other); ,input 10 characters: Reold 123? blank=1, digit=3, other=6,例: #include void main( ) int i ; for(i = 0; i 3; i+) switch(i) case 1: printf(%d,i); case 2: pri

13、ntf(%d,i); default: printf(%d,i); ,以下程序的输出结果是: A. 011122 B. 012 C. 012020 D. 120,注意所属关系,例7. 7 编写一个简易计算器.,Ch7_7_7.c,#include #include int main() float numb1 = 0, numb2 = 0; int menu = 1, flag; float total=0; char calType; .,for(;) flag=1; printf(nt希望进行哪种运算?nn); printf(t 1:加法n); printf(t 2:减法n); print

14、f(t 3:乘法n); printf(t 4:除法n); printf(t 0:退出计算器n); printf(nt输入你的选择:); .,. scanf(%d, .,退出程序.,switch(menu) case 1: total=numb1+numb2; calType=+; break; case 2: total=numb1-numb2; calType=-; break; case 3: total=numb1*numb2; calType=*;break; case 4: if(numb2=0) printf(nt不能被0除n); flag=0;break; total=numb1

15、/numb2; calType=/;break; default: printf(无效的选择!n); ,if(flag=1) printf(nn*); printf(nnt%.3f %c %.3f = %.3f, numb1, calType, numb2, total); printf(nn*nn); return 0; ,Ch7_7_7.c,第 七 章 多分支语句的应用结束,问输出为?: A) K=3 B) K=4 C)K=2 D)K=0 main( ) int k=0; char c=A; do swich(c+) case A: K+; break; case B: K-; case C: k+=2; break; case D: K=K%2; continue; case E: K=K*10; break; default: K=K/3; K+; while(cG

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 办公文档 > PPT模板库 > PPT素材/模板

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号