C# switch语句

一个switch语句允许使用一个变量测试来相对于一个值的列表。每个值都称为一种情况(case),并且每个switch情况都检查是否匹配变量的值。

语法

C# 中的switch语句的语法如下:

switch(expression) {
   case constant-expression  :
      statement(s);
      break; /* optional */
   case constant-expression  :
      statement(s);
      break; /* optional */

   /* you can have any number of case statements */
   default : /* Optional */
   statement(s);
}

以下规则适用于switch语句:

  • switch语句中使用的表达式(expression)必须具有一个整数或枚举类型,或者是类类型,该类具有单个转换函数为整数或枚举类型。
  • 可以在switch语句内有任意数量的case语句。 每个case语句后跟要比较的值和冒号。
  • case语句中的常量表达式必须与switch中变量的数据类型相同,它必须是常量或字面值。
  • 当接通的变量等于其中一个case语句中的值时,这个case语句中代码块将被执行,直到达到break语句。
  • 当达到break语句时,switch语句块终止,并且控制流程跳转到switch语句之后的下一行。
  • 不是每个case都需要包含break语句(可选)。 如果不没有break语句,控制流程将执行到在后续case语句中,直至遇到break语句。
  • switch语句可以具有可选的default语句,必须出现在switch语句的末尾。 默认情况下可以用于在没有任何情况为真时执行任务。在default语句不需要使用break语句。

流程图

示例代码

using System;
namespace DecisionMaking
{
    class Program
    {
        static void Main(string[] args)
        {
            /* local variable definition */
            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;
            }
            Console.WriteLine("Your grade is  {0}", grade);
            Console.ReadLine();
        }
    }
}

当编译和执行上述代码时,会产生以下结果:

Well done
Your grade is B

上一篇: C#决策结构 下一篇: C#循环