switch语句

来自cppreference.com
< c‎ | language
 
 
C语言

|- class="t-nv-h1" | colspan="5" | 基本主题 |-

|- class="t-nv-h1" | colspan="5" | 流程控制 |-

| |- |

预处理器
注释
关键字
ASCII码表
转义序列
C语言历史
条件执行语句
if语句

|

switch语句

|-

循环语句

| |- |

|

|-

跳转语句

| |- |

|

|-

|- class="t-nv-h1" | colspan="5" | 函数 |-

函数声明 内联指示

|- class="t-nv-h1" | colspan="5" | 类型 |- | |- |

|

|-

指示符 cv指示符 存储类指示符 对齐指示符 (C99) 函数指示符 (C99) 字面值

| |- |

|

|-

|- class="t-nv-h1" | colspan="5" | 表达式 |-

计算顺序 操作符 操作符优先级 替代表示

|- class="t-nv-h1" | colspan="5" | 工具 |-

typedef 类型声明 属性 (C99) 转换

|- class="t-nv-h1" | colspan="5" | 杂项 |-

内嵌汇编
 

根据整型参数的值执行代码。

当需要根据一个整型值选择许多代码分支中的一个或多个执行时使用。

目录

[编辑] 语法

switch ( expression ) {
case constant_expression1 :
statement1 (可选)
case constant_expression2 :
statement2 (可选)
... ... ...
case constant_expressionn :
statementn (可选)
default: default_statement (可选)

}

[编辑] 解释

expression应该是一个能够转换为整型值的表达式。

所有的constant_expression必须是能够转换为整型值的常量表达式,且该值在这个switch语句中唯一。

如果expression计算后得到一个值并等于某个constant_expressionistatementi(若出现)和之后所有语句(包括default_statement,若出现)将会被执行。如果expression的值不匹配任何的constant_expressiondefault_statement若存在则会被执行。

应注意,如果不希望后续语句的执行,可以使用break语句。这时,switch的执行将会被终止。

[编辑] 关键字

switch, case, default

[编辑] 示例

#include <stdio.h>
 
void func(int x)
{
   printf("func(%d): ", x);
   switch(x)
   {
      case 1: printf("case 1, ");
 
      case 2: printf("case 2, ");
 
      case 3: printf("case 3.\n"); break;
 
      case 4: printf("case 4, ");
 
      case 5: printf("case 5, ");
 
      default: printf("default.\n");
   }
}
 
 
int main()
{
   for(int i = 1; i < 10; ++i)  func(i);
}

输出:

func(1): case 1, case 2, case 3.
func(2): case 2, case 3.
func(3): case 3.
func(4): case 4, case 5, default.
func(5): case 5, default.
func(6): default.
func(7): default.
func(8): default.
func(9): default.