C语言switch语句ppt课件

上传人:钟*** 文档编号:4971533 上传时间:2020-01-16 格式:PPT 页数:38 大小:1.56MB
返回 下载 相关 举报
C语言switch语句ppt课件_第1页
第1页 / 共38页
C语言switch语句ppt课件_第2页
第2页 / 共38页
C语言switch语句ppt课件_第3页
第3页 / 共38页
点击查看更多>>
资源描述
switch语句 1 7 1switch语句 switch语句是一条多分支选择语句 在实际应用中 要在多种情况中选择一种情况 执行某一部分语句 当然可以使用嵌套的if ifelseif语句来处理 但其分支过多 程序冗长 难读 不够灵巧 2 switch语句是C语言中处理多路选择问题的一种更直观和有效的手段 在测试某个表达式是否与一组常量表达式中的某一值相配时 switch语句显得更为方便 一般形式如下 3 switch 表达式 case 常量表达式1 语句1 break case 常量表达式2 语句2 break case 常量表达式n 语句n break default 语句n 1 说明 1 关于表达式 表达式可以是整型 字符型等表达式 有一个确定的值 不是逻辑值 2 关于常量表达式1 n 只起到一个标号的作用 根据表达式的值来判断 找到一个相匹配的入口处 程序往下执行 各个case后的常量表达式的值必须互不相同 3 每个case分支可有多条语句 可不用花括号 4 switch 表达式 case常量表达式1 语句1 break case常量表达式2 语句2 break case常量表达式n 语句n break default 语句n 1 4 各个case语句只是一个入口标号 并不确定执行的终止点 5 一般在各个case语句最后应该加一break语句 可使程序流程跳出Switch结构 否则会从入口处一直向下执行 6 各个case和default出现的先后次序 并不影响执行结果 default可以没有 5 7 多个case可共用一组执行语句 例如为了统计一段文字中的数字 字母及分隔符的个数 可用下列程序段实现 switch ch case 0 case 1 case 8 case 9 digit break case case n case t white break default character break 这里有一个空格 表达式后都有一冒号 6 无break语句 switch 表达式 7 说明 switch语句不等同于if语句 1 switch只能进行值的相等性的检查 2 if语句不但可以进行相等性的检查 还可以计算关系表达式或逻辑表达式 进行逻辑判断的真假 只进行值的相等性的检查 不是逻辑判断 8 例7 1键盘输入0 6之间的整数 分别代表每周的星期日 星期一 星期六 includeintmain intday printf 请输入星期的数字编号 0 6 scanf d Ch7 7 1 c 9 switch day case0 printf 星期日 n break case1 printf 星期一 n break case2 printf 星期二 n break case3 printf 星期三 n break case4 printf 星期四 n break case5 printf 星期五 n break case6 printf 星期六 n break default printf 输入有误 请输入0 6之间的数字 n return0 每个case分支可有多条语句 可不用花括号 也可以用 表达式有一个确定的值 不是逻辑值 10 例7 2求执行下列程序段后k的值 includeintmain charc 2 intk 1 switch c 1 0 case2 k 1 case2 1 k 2 case4 k 3 printf k d n k return0 一般在各个case语句最后应该加一break语句 可使程序流程跳出Switch结构 否则会从入口处一直向下执行 0 的ASCII值为48 Ch7 7 2 c 11 例7 3执行下列程序 当分别输入A B C E时 求K的值 charc intk 2 scanf c Ch7 7 3 c 12 例7 4输入一字符 如果是Y N或y n 则分别执行一输出语句 如果是其他字母则执行另一输出语句 includevoidmain charch printf PleaseinputY N y n scanf c Ch7 7 4 c 13 switch ch case y case Y printf thisis Y or y n break case n case N printf thisis N or n n break default printf thisisotherchar n 多个case可共用一组执行语句 表达式有一个确定的值 不是逻辑值 14 例7 5编写程序 实现如下功能 输入一个实数后 屏幕显示如下菜单 1 输出相反数2 输出平方数3 输出平方根4 退出 15 includevoidmain inti c 5 floatm printf 输入任意一个整型数 n scanf f Ch7 7 5 c 16 while 1 scanf d Ch7 7 5 c 17 例7 6根据输入字符 0 9及A F a f 显示与该字符所表示的十六进制数相对应的十进制数 例如 输入 A 输出10 输入 0 输出0 18 include includeintmain charch for printf n请输入十六进制数0 F 输入Q或q退出 scanf c 当输入一个字符 打一个回车后 输入结束 但在输入缓冲区中存在二个字符 输入的字符 还有一个是 n 当打了一个回车后 其实是二个动作 回车 换行 c语言会把回车 换行自动转换为 n 反之亦然 19 switch ch case 0 case 1 case 2 case 3 case 4 case 5 case 6 case 7 case 8 case 9 printf 十进制数 d n ch 0 break case A case B case C case D case E case F printf 十进制数 d n ch 55 break Ch7 7 6 c ASCII值 0 48 A 65 a 97 20 case a case b case c case d case e case f printf 十进制数 d n ch 87 break case Q case q printf 退出程序 n exit 0 default printf 输入有误 return0 ASCII值 0 48 A 65 a 97 21 示例 输入10个字符 分别统计出其中空格或回车 数字和其他字符的个数 voidmain intblank digit i other charch blank digit other 0 printf input10characters 22 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 case 5 case 6 case 7 case 8 case 9 digit break default other break printf blank d digit d other d n blank digit other input10characters Reold123 blank 1 digit 3 other 6 23 例 includevoidmain inti for i 0 i 3 i switch i case1 printf d i case2 printf d i default printf d i 以下程序的输出结果是 A 011122B 012C 012020D 120 注意所属关系 24 例7 7编写一个简易计算器 Ch7 7 7 c 25 include includeintmain floatnumb1 0 numb2 0 intmenu 1 flag floattotal 0 charcalType 26 for flag 1 printf n t希望进行哪种运算 n n printf t1 加法 n printf t2 减法 n printf t3 乘法 n printf t4 除法 n printf t0 退出计算器 n printf n t输入你的选择 27 scanf d 退出程序 28 switch menu case1 total numb1 numb2 calType break case2 total numb1 numb2 calType break case3 total numb1 numb2 calType break case4 if numb2 0 printf n t不能被0除 n flag 0 break total numb1 numb2 calType break default printf 无效的选择 n 29 if flag 1 printf n n printf n n t 3f c 3f 3f numb1 calType numb2 total printf n n n n return0 Ch7 7 7 c 30 问输出为 A K 3B K 4C K 2D K 0main intk 0 charc 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 c G printf K d n K 第1次 第2次 3 4 5 6 K 2k 4k 7k 1k 11k 4c Bc Cc Dc Ec Fc G 31 注 每次执行switch C 时 先取C的值 找到入口 然后C增1 当执行到continue时 流程跳过do while语句中当未执行的语句 而直接转向while的条件表达式 判循环是否进行 32 练习与实践 1 百分制转换成五分制 includeintmain intx printf 请输入学生百分制成绩 n输入负数结束程序 n scanf d 课本P101 1题 33 while x 0 switch x 10 case10 case9 printf 五分制为 n5 n n break case8 printf 五分制为 n4 n n break case7 printf 五分制为 n3 n n break case6 printf 五分制为 n2 n n break default printf 五分制为 n1 n n break 课本P101 1题 34 printf 请输入学生百分制成绩 n输入负数结束程序 n scanf d 35 include includeintmain doublex s inty printf Inputanumber n scanf lf 2 计算sin cos tan 36 while 1 printf 您希望进行哪种运算 n printf 1 计算sin x n printf 2 计算cos x n printf 3 计算tan x n scanf d 37 if y 1 y 2 y 3 break printf 谢谢使用 n return0 38
展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 图纸专区 > 大学资料


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!