C语言中switch case语句可变参实现方法(case 参数 空格...空格 参数 :)

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

switch(参数)
{
    case 1 : ... ; break ;
    case 2 : ... ; break ;
    default:
           ... break ;
}

这种是我们最常见的写法,当然也可以这么写:

switch(参数)
{
    case 1: case 2 : case 3 : case 4 :
        ...
        ;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内核的一定不陌生。

时间: 2024-12-01 06:58:37

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

快速学习C语言中for循环语句的基本使用方法_C 语言

对于某个特定任务我们可以采用多种方法来编写程序.下面这段代码也可以实现前面的温度转换程序的功能:#include <stdio.h> /*打印华氏温度-摄氏温度对照表*/ main() { int fahr; for (fahr = 0; fahr <= 300; fahr = fahr + 20) printf("%3d %6.1f\n", fahr, (5.0/9.0)*(fahr-32)); } 温度的下限.上限和步长都是常量, printf 函数的第三个参数必

php语言中switch的用法

  php语言中switch的用法介绍: $czc="reg"; switch($czc){ case 'reg'://注册 echo "注册的代码"; break;//如果注释掉此句,将执行下在的代码,否则终止 case 'logout'://退出 echo "退出的代码"; break; default://此代码 除了reg,logout外其它的都是执行以下面的代码 include 'user/info.php'; break; } /*此

golang语言中for循环语句用法实例_Golang

本文实例讲述了golang语言中for循环语句用法.分享给大家供大家参考.具体分析如下: for循环是用来遍历数组或数字的.用for循环遍历字符串时,也有 byte 和 rune 两种方式.第一种为byte,第二种rune. 复制代码 代码如下: package main import ( "fmt" ) func main() { s := "abc汉字" for i := 0; i < len(s); i++ { fmt.Printf("%c,&

简介Go语言中的select语句的用法_Golang

在Go编程语言中的select语句的语法如下: 复制代码 代码如下: select {     case communication clause  :        statement(s);          case communication clause  :        statement(s);     /* you can have any number of case statements */     default : /* Optional */        stat

golang语言中for循环语句的例子

用for循环遍历字符串时,也有 byte 和 rune 两种方式.第一种试为byte,第二种rune.  代码如下 复制代码 package main import ( "fmt" ) func main() { s := "abc汉字" for i := 0; i < len(s); i++ { fmt.Printf("%c,", s[i]) } fmt.println() for _, r := range s { fmt.Printf

CASE语句与CASE表达式

      case语句与case表达式是plsql流程控制的重要组成部分,尽管其使用方法较为简单,但容易混淆.本文将描述case语句与case表达式并给出演示以便于更好理解两者的异同及使用时的注意事项. 一.简单case语句 -->语法 CASE SELECTOR WHEN EXPRESSION 1 THEN STATEMENT 1; WHEN EXPRESSION 2 THEN STATEMENT 2; ... WHEN EXPRESSION N THEN STATEMENT N; ELSE

《Puppet实战手册》——2.10 使用选择器和case语句

2.10 使用选择器和case语句 虽然可以用if来编写任何条件语句,但Puppet还是提供提供了一些其他的形式来帮助用户更容易地编写表达条件语句:选择器(selecteor)和case语句. 操作步骤下面是一些关于选择器和case语句的例子. 1. 把下面的代码加入到配置清单中: $systemtype = $::operatingsystem ? { 'Ubuntu' => 'debianlike', 'Debian' => 'debianlike', 'RedHat' => 're

C语言中lseek()函数和fseek()函数的使用详解_C 语言

C语言lseek()函数:移动文件的读写位置 头文件: #include <sys/types.h> #include <unistd.h> 定义函数: off_t lseek(int fildes, off_t offset, int whence); 函数说明: 每一个已打开的文件都有一个读写位置, 当打开文件时通常其读写位置是指向文件开头, 若是以附加的方式打开文件(如O_APPEND), 则读写位置会指向文件尾. 当read()或write()时, 读写位置会随之增加,ls

ASP中用select case代替其他语言中的switch case, default用case else_应用技巧

asp中不能用switch语句,要用select case语句了 简单的介绍一下 选择报表的工作一样,如果语句.然而不同的是,他们可以检查多个值.当然,你有 多个相同的,如果.. else语句,但是这并不总是最好的方法. 选择语句允许一个程序来计算表达式,并试图匹配表达式的值案件标签.如果找到匹 配,程序执行相关的声明.对于SELECT语句的语法如下: select case expression case label_1 statements_1 case label_2 statements