多路开关模式的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 :语句; ...
 
随机推荐
- CSS3的animation功能
			
旋转动画 <img src="https://facebook.github.io/react/img/logo.svg" class="App-logo" ...
 - java编程思想-复用类
			
/* 一个文件中只能有一个public类 并且此public类必须与文件名相同 */ class WaterSource { private String s; WaterSource() { Sys ...
 - SSD硬盘安装系统后要做的事
			
1***cmd>fsutil behavior query DisableDeleteNotify 0如果返回值是0,则代表TRIM处于开启状态:反之如果返回值是1,则代表TRIM处于关闭状态2 ...
 - node安装-Win+Linux+Mac osx
			
node下载地址,除了Mac osx或Win平台,仅有Linux平台命令安装. Win.Mac 点击即可下载(注:Mac有dmg和pkg安装格式). Linux分为Redhot和Deepin系列,安装 ...
 - 开放-封闭"原则(OCP)
			
Open-Closed Principle原则讲的是:一个软件实体应当对扩展开放,对修改关闭. 优点: 通过扩展已有软件系统,可以提供新的行为,以满足对软件的新的需求,使变化中的软件有一定的适应性和灵 ...
 - You don't have permission to access ××× on this server.
			
之前开发项目一直在linux上用的xampp集成环境,前几天突然想移到window上面去. 開始在window上安装了一个集成环境(名字大概是 Uniform Service),把项目文件已过去, o ...
 - 1.1 Spring概述
			
Spring是分层的Java SE/EE应用一站式的轻量开源框架,以 反转控制(Inverse of Control,IoC).面向切面编程(Aspect Oriented Programmi ...
 - spring mvc +Mybatis3.1 整合的时候异常
			
在使用Mybatis3.10+spring3.10+mybatis-spring-1.0.0集成,使用spring 时发生例如以下错误: 严重: Servlet.service() for servl ...
 - REST技术第二步 获取URL中的參数
			
获取请求的參数.rest技术相对于servlet来说要方便很多. Servlet我们要获取请求的參数,非常麻烦啊.须要request.getParameter("").假设我们要的 ...
 - [Unity-21] Prefab具体解释
			
1.什么是Prefab? Prefab又被称为预设,以下部分来自官网:预置是一种资源类型--存储在项目视图中的一种可反复使用的游戏对象.预置能够多次放入到多个场景中. 当你加入一个预置到场景中,就创建 ...