switch 语句

switch 语句允许测试变量与值列表的相等性。每个值称为一个案例,并检查每个开关案例接通的变量。

在测试单个变量的多个可能值时,switch 语句通常比 if...else if... else.. 语句更简洁和易懂。

语法如下

switch(expression) {
   case constant-expression:
      statement(s);
      break;
   case constant-expression:
      statement(s);
      break;
  
   // you can have any number of case statements
   default : // Optional
      statement(s);
      break;
}

使用 switch 语句时需要考虑的各种事情

  • switch 语句中使用的表达式必须具有整数或枚举类型,或者是类类型,其中类具有单个转换函数为整数或枚举类型。
  • 你可以在交换机中包含任意数量的 case 语句。每个案例后跟要与之比较的值和冒号。要比较的值必须在每个 switch 语句中是唯一的。
  • switch 语句可以有一个可选的默认情况。当没有任何情况为真时,默认情况可用于执行任务。
  • 每个案例都必须以 break 语句结束,除非它是一个空语句。在这种情况下,执行将继续在它下面的情况下。当使用 returnthrowgoto case 语句时,也可以省略 break 语句。

可以按等级给出示例

char grade = 'B';

switch (grade)
{
    case 'A':
        Console.WriteLine("Excellent!");
        break;
    case 'B':
    case 'C':
        Console.WriteLine("Well done");
        break;
    case 'D':
        Console.WriteLine("You passed");
        break;
    case 'F':
        Console.WriteLine("Better try again");
        break;
    default:
        Console.WriteLine("Invalid grade");
        break;
}