switch语句

来自cppreference.com
< c‎ | language

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

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

目录

[编辑] 语法

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.