当前位置: 首页 > 编程语言 > C# > 正文

C#的switch语句

时间:2007-09-13 本站

if语句每次判断只能实现两条分支,如果要实现多种选择的功能,那么可以采用switch语句。switch语句根据一个控制表达式的值选择一个内嵌语句分支来执行。它的一般格式为:

switch(controllong-expression)
{
  case constant-expression
     embedded-statements
  default:
     embedded-statements
}

switch语句的控制类型,即其中控制表达式(controllong-expression)的数据类型可以是sbyte,byte,short,ushort,uint,long,ulong,char,string或枚举类型(enum-type)。每个case标签中的常量表达式(constant-expression)必须属于或能隐式转换成控制类型。如果有两个或两个以上的case标签中的常量表达式相同,编译时将会报错。switch语句中最多只能有一个default标签。

我们举一个例子来说明switch语句是如何实现程序的多路分支的。

假设考查课的成绩按优秀、良好、中等、及格和不及格分为五等,分别用4、3、2、1、0来表示,但实际的考卷为百分制,分别对应的分数为90-100,80-90,60-80,60分以下。下面的程序将考卷成绩x转换为考查课成绩y。我们先看流程图。

代码如下:

int x=int(x/10);
switch(x)
{
  case 10:y=4;break;
  case 9:y=4;break;
  case 8:y=3;break;
  case 7:y=2;break;
  case 6:y=1;break;
  default:y=0;
}

 

下面的例子判断传递给应用程序的参数的有无、位数。

程序清单8-2:

using System;
class Test
{
  public static void Main(string[] args{
   switch(args.Length){
     case 0:
       Console.WriteLine("No arguments were provided");
       break;
     case 1:
       Console.WriteLine("One arguments was provided");
       break;
     default:
       Console.WriteLine("{0}arguments were provided");
       break;
   }
}