跳至内容

Switch Operator

Switch Operator

该运算符将表达式的值与所有case变体中的常量进行比较,并将控制传递给与表达式值对应的运算符。每个case变体可以用整数常量、字面常量或常量表达式标记。常量表达式不能包含变量或函数调用。Switch运算符的表达式必须是整数类型。

switch(expression)
  {
   case constant: operators
   case constant: operators
      ...
   default: operators
  }

如果case中的任何常量都不等于表达式值,则执行由默认标签标记的运算符。默认变体不必声明,也不必是最后一个变体。如果没有常量对应表达式值且默认变体不可用,则不执行任何操作。

带有常量的case关键字只是标签,如果某个case变体执行了运算符,程序将继续执行所有后续变体的运算符,直到出现break运算符。它允许将一系列运算符与多个变体绑定。

常量表达式在编译期间计算。同一个switch运算符中的两个常量不能具有相同的值。

示例:

//--- First example
switch(x)
  {
   case 'A':
      Print("CASE A");
      break;
   case 'B':
   case 'C':
      Print("CASE B or C");
      break;
   default:
      Print("NOT A, B or C");
      break;
  }

//---  Second example
   string res="";
   int i=0;
   switch(i)
     {
      case 1:
         res=i;break;
      default:
         res="default";break;
      case 2:
         res=i;break;
      case 3:
         res=i;break;
     }
   Print(res);
/*
   Result
   default
*/

另请参阅

变量的初始化变量的可见性范围与生命周期对象的创建与删除

最后更新于