多路开关模式的switch语句
在实例10中,将break语句去掉之后,会将符合检验条件后的所有语句都输出。利用这个特点,可以设计多路开关模式的switch语句,例如:在平年一年12个月,1、3、5、7、8、10、12月是31天,4、6、9、11月是30天,2月是28天,如果在控制台上任意输入月份,就可以知道这个月有多少天。这种情况,就可以使用switch语句的多路开关模式,它的形式如下:
switch(表达式)
{
case :
语句1
break;
case :
case :
语句2
break;
…
default:
默认语句
break;
}
从形式中可以看到如果在case 2后不使用break语句,那么符合检验时与符合case 3检验时的效果是一样的。也就是说,使用多路开关模式,可以使多种检验条件用一个语句块输出。
实例11 输入的某个月份属于哪个季节
在本实例中,要求使用switch语句判断控制台输入的某个月份属于哪个季节,已知3、4、5月是春季,6、7、8月为夏季,9、10、11为秋季,12、1、2月为冬季。具体代码如下:
#include<stdio.h>
int main()
{
int month; /*定义变量月份*/
printf("please enter a month:\n");
scanf("%d",&month); /*输入月份*/
switch(month) /*根据月份分季节*/
{
/*多路开关模式*/
case :
case :
case :
printf("%d is spring\n",month); /*3,4,5月是春季*/
break;
/*多路开关模式*/
case :
case :
case :
printf("%d is summer\n",month); /*6,7,8月是夏季*/
break;
/*多路开关模式*/
case :
case :
case :
printf("%d is autumn\n",month); /*9,10,11月是秋季*/
break;
/*多路开关模式*/
case :
case :
case :
printf("%d is winter\n",month); /*12,1,2月是冬季*/
break;
default:
printf("error!!!\n"); /*无此月份*/
}
return ; /*程序结束*/
}
运行程序,显示结果如图6.21所示。

图6.21 季节运行图
从该实例代码和运行结果可以看出:
程序中使用多路开关模式,使得检测month的值为3、4、5这3种情况时,都会执行相同的操作,并且利用default语句将不符合的数字显示,提示信息表示输入错误。
练一练:
已知一个灯泡并联3个开关,分别为开关1,开关2,开关3,;另一串彩灯串联一个开关4,开关5和开关6并联一个白炽灯和节能灯,问随意按下开关哪个灯能亮?
本文摘自明日科技出版的《零基础学C语言》,转载请注明出处!!!
多路开关模式的switch语句的更多相关文章
- 包、mode模式、if-else语句、switch语句
目录 包 mode模式 if-else语句 循环 switch语句 包 //1 在同一个包下(文件夹下),包名必须一致 //2 以后,包名就是文件夹的名字 //3 同一个包下,同名函数只能有一个(in ...
- 多路分支----switch语句
switch-case与if-else有相似的作用,都是表达分支的方式. 语法形式: switch(type){ case 常量1: do something; break; case 常量2: do ...
- 【C语言】-条件语句-switch语句
switch语句: 用于直接处理不同情况下的多路问题. switch语句又可称为开关语句,其执行流程和多分支if语句类似. switch (表达式) { case 常量表达式1:语句组1;break; ...
- switch语句
应用条件语句可以很方便地使程序实现分支,但是出现分支比较多的时候,虽然可以用嵌套的if语句来解决,但是程序结构会显得复杂,甚至凌乱.为方便实现多情况选择,C++提供了一种switch开关语句. 一 ...
- 1.3.1 switch 语句中的 String
switch语句是一种高效的多路语句,可以省掉很多繁杂的嵌套if判断: 在Java 6及之前,case语句中的常量只能是byte.char.short和int(也可以是对应的封装类)或枚举常量,在Ja ...
- C语言-switch语句
switch (表达式的值) { case 1: 语句1 break; case 2: 语句2 break; case 3: 语句3 break; case 4: 语句4 break; ...... ...
- 更深入一点理解switch语句及c/c++对const的处理
首先看一到用 c 编写的程序/* -------------------- filename : ta.c --------------- */int switch_test_first( int x ...
- java - 策略模式、状态模式、卫语句,避免多重if-else(转)
前言 当代码中出现多重if-else语句或者switch语句时.弊端之一:如果这样的代码出现在多处,那么一旦出现需求变更,就需要把所有地方的if-else或者switch代码进行更改,要是遗漏了某一处 ...
- switch语句(初学者)
C语言提供了另一种用于多分支选择的switch语句(常用于开关),一般形式为: switch ( 常量表达式 ) { case 常量1 :语句; case 常量2 :语句; case 常量3 :语句; ...
随机推荐
- vue watch 深度监控
比如监控 data中的list
- react 项目实战(四)组件化表单/表单控件 高阶组件
高阶组件:formProvider 高阶组件就是返回组件的组件(函数) 为什么要通过一个组件去返回另一个组件? 使用高阶组件可以在不修改原组件代码的情况下,修改原组件的行为或增强功能. 我们现在已经有 ...
- 通过android XML 创建图形,降低对美工的依赖
在开发中总会须要自己定义各种View的样式,假设总是依赖美工作图弄出须要的UI样式图片(比方:一个button要选中和默认两张图片),不但时间上会浪费.往往也会有适配问题. 尽管能够通过.9图来解决一 ...
- muduo源代码分析--Reactor模式在muduo中的使用
一. Reactor模式简单介绍 Reactor释义"反应堆",是一种事件驱动机制.和普通函数调用的不同之处在于:应用程序不是主动的调用某个API完毕处理.而是恰恰相反.React ...
- iOS下JSON反序列化开源库
iOS下JSON字符串反序列化成对象.在正式的项目中比較常见.例如以下几个经常使用开源库.能够依据个人喜好任选其一: 1. JSONModel: https://github.com/icanzilb ...
- 《炉石传说》架构设计赏析(4):Asset管理
欢迎转载,请注明作者[燕良@游戏开发]及原文地址:http://blog.csdn.net/neil3d/article/details/39580197 另外.欢迎大家来我的QQ群交流各种游戏引擎相 ...
- Objective-C 内存管理retain和release
OC使用引用计数来管理内存,每个继承NSObject的对象,内部都维护了一个引用计数器retainCount.当对象创建时(调用alloc或者new)引用计数器会+1, 手动调用retain()方法能 ...
- 2015/12/29 Java语言概述 操作中注意事项
java语言概述 ①版本分类:JavaSE 标准版 桌面开发 JavaEE 企业版 网络开发 JavaME 移动版 嵌入式开发(塞班系统 ...
- 【codevs1306】广播操的游戏
求字符串内的非空子串的数量 后缀数组!!! #include<algorithm> #include<cstdlib> #include<cstring> #inc ...
- 【OI】简单的分块
介绍下简单的分块: 当我们遇到区间类问题的时候,如何保证我们快速而高效地完成操作? 答案是线段树分块. 所谓分块,就是把一个序列分成许多块分别维护.是不是想起了树状数组 这样能大大提高效率: 例如,我 ...