一、C# switch语句
if语句每次判断只能实现两种选择,而switch语句每次判断可以实现多种选择。
基本语法格式如下:
switch(controlling-expression)
{
case constant-expression:
{语句块}
跳转语句(如break、return、goto)
case constant-expression:
{语句块}
跳转语句(如break、return、goto)
......
default:
{语句块}
跳转语句
}
?controlling-expression:控制表达式。可以是sbyte、byte、short、ushort、int、uint、long、ulong、char、string或enum类型。
?constant-expression:常数表达式。必须属于或者能隐式转换成控制类型controlling-expression。
switch关键字后面的表达式计算一次,如果找到和表达式的值相等的一个常数表达式,就执行case标识的代码块。进入case块之后,程序将一直执行,直到遇到break语句结束。如果没有与之相匹配的值,就运行由可选的default标签所标识的语句块。如果没有可选的default标签,程序会跳过整个switch语句,从它的结束大括号之后的第一个语句继续执行。
二、提示
在switch语句中,不允许两个或两个以上的case具有相同的值。
有时候,switch语句要比if语句更加简洁!
三、技巧
如果要像C、C++那样,执行完一个case子句以后,继续遍历其它的子句,只要加入下面的两条跳转语句即可。
?goto case label:跳至标签语句执行。
?goto default:跳至default标签执行。
类似的代码如下:
total = 365;
switch(month)
{
case 1: total -= 31; goto case 2;
case 2: total -= 28; goto case 3;
case 3: total -= 30; goto case 4;
......
case 12: total -= 31; goto case default;
default: total += day;
}
四、示例
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace Test
{
class Program
{
static void Main(string[] args)
{
// C# switch语句-www.baike369.com
Console.WriteLine("请输入考试分数(0-100的整数):");
int score = Convert.ToInt32(Console.ReadLine());
switch (score/10)
{
case 10:
Console.WriteLine("满分");
break;
case 9:
Console.WriteLine("优秀");
break;
case 8:
Console.WriteLine("良好");
break;
case 7:
Console.WriteLine("较好");
break;
case 6:
Console.WriteLine("及格");
break;
default:
Console.WriteLine("不及格");
break;
}
Console.ReadLine();
}
}
}