正常情况下,switch case语句是这么写的:

: :
        ...
        ;break ;
    default :
        ...
        ;break ;
}

接下来说一种不常见的,但是对于多参数有很大的帮助的写法:

先给一个程序:

#include <stdio.h>

int main()
{
    int i ;
    for(i = 0 ; i < 11 ; i++)
    {
        switch(i)
        {
           case 1 ... 5 :
                printf("%d\n",i); break ;
           case 6 ... 10 :
                printf("%d\n",i); break ;
           default:
                printf("First:%d\n",i); break ;
        }
    }
    return 0;
}

运行结果:

First: 0

1

2

3

4

5

6

7

8

9

10

这种case 参数 空格...空格 参数的写法就是switch case语句的可变参形式写法,只要是标准C可以编译通过,不过这样的写法在GNU C中较为常见,读过linux内核的一定不陌生。

C语言中switch case语句可变参实现方法(case 参数 空格...空格 参数 :)的更多相关文章

  1. C语言中,while()语句中使用赋值语句

    while()语句括号中是一个逻辑表达式,用以判断while循环是否需要继续执行.可以是赋值语句. while循环的一般格式为: while(expr) { ;//body } 其中用来判断循环条件的 ...

  2. R语言中的if-else语句写法

    结构  1 :  if()  xx  else    yy    一行: 结构  2:   if()  {xx} else  {yy} 或者   if(){ xx }else    #此处不能两行写 ...

  3. asp语言中if判断语句的求助

    If a < 5 Then   Response.Redirect("1.asp")ElseIf a > 5 And a < 8 Then   Response. ...

  4. C语言中的enum(枚举)使用方法

    近期在写数据结构的广义表时候用到了这个概念,在学习C语言的时候没有太注意们这里学一下. 我在网上结合了非常多资料,这里自己总结一下. 首先说.JAVA和C++中都有枚举类型. 假设一个变量你须要几种可 ...

  5. go语言中regexp包中的函数和方法

    // regexp.go ------------------------------------------------------------ // 判断在 b 中能否找到正则表达式 patter ...

  6. 为什么说在使用多条件判断时switch case语句比if语句效率高?

    在学习JavaScript中的if控制语句和switch控制语句的时候,提到了使用多条件判断时switch case语句比if语句效率高,但是身为小白的我并没有在代码中看出有什么不同.去度娘找了半个小 ...

  7. (二)shell中case语句、程序传参、while

    2.2.6.1.case语句(1)shell中的case语句和C语言中的switch case语句作用一样,格式有差异(2)shell中的case语句天生没有break,也不需要break,和C语言中 ...

  8. swtich和case语句中,定义变量要加花括号

    转自: http://blog.chinaunix.net/uid-27103408-id-3340702.html http://www.xuebuyuan.com/2070170.html swi ...

  9. Mysql之case语句(附带实例)

    这段时间,做项目做累了,好不容易有点个人的学习时间,利用这个小时,总结一下,最近做统计的时候常用的case语句吧. 结构:case  when… then …end 1.判断的同时改变其值 eg:   ...

随机推荐

  1. 【Codeforces Round #435 (Div. 2) A B C D】

    CF比赛题目地址:http://codeforces.com/contest/862 A. Mahmoud and Ehab and the MEX ·英文题,述大意:      输入n,x(n,x& ...

  2. QSDK下驱动AR8035

    0 概述 QSDK平台中,我所接触到的版本,能支持MIPS架构的,是基于Openwrt AA版本:虽然CC版本上就已经能很好地支持AR8035了,可是AA版本它本身是不支持的,于是不断有人要求提供补丁 ...

  3. WiFi认证中HTTPS重定向

    问题描述 在引入WiFiDog实现上网认证功能中,有2个绕不过的问题:https重定向和Select检测问题,前者非要求用户访问80端口,后者导致效率较低下.就用户体验来说,https无法主动重定向非 ...

  4. MySQL的常用操作命令详解

    系统管理">系统管理 mysql服务">启动MySQL服务 通过windows服务管理器启动MySQL服务 ? 1 开始-->运行-->输入services ...

  5. java的迭代器详解

    迭代器的引出 在jdk1.5版本之前是没有 foreach的,然而1.5版本就加上了foreach,而引入的新的foreach功能并不是在jvm上进行改进的因为代价太高,甲骨文工程师想到了一个比较好的 ...

  6. Windows笔记目录

    Windows笔记目录   Windows介绍 Windows入门--个人感想 初入Linux AD域控 FTP 服务器及权限 Server-U FTP与AD完美集成方案详解 其他 Linux大文件传 ...

  7. 如何成为快手尬舞王?HUAWEI HiAI了解一下!

    左手!右手!抱一抱!扭一扭! 快手短视频,红遍东西南北中, 给大家的生活增添了不少乐趣. 有了人体姿态识别的魔法表情, 不会跳舞的也都可以跟着跳一跳. 从村口朴实的阿姨,到写字楼里端庄的白领, 在人体 ...

  8. idea Library XXXXXXXX has broken classes paths

    点fix 然后全部 全部按- 删掉 一开始以为会影响很大 后来发现他地址错了都导不进 要是真要用到的时候也没用 还是要maven单独导进来

  9. 关于一些基础的Java问题的解答(五)

    21. 实现多线程的两种方法:Thread与Runable 在Java中实现多线程编程有以下几个方法: 1.继承Thread类,重写run方法 public class Test { public s ...

  10. Linux平台安装MongoDB

    MongoDB 提供了 linux 各发行版本 64 位的安装包,你可以在官网下载安装包. 下载地址:https://www.mongodb.com/download-center#community ...