点击这里给我发消息 点击这里给我发消息

C# switch语句

添加时间:2013-12-7
    相关阅读: 程序 C# C++

一、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();
        }
    }
}

咨询热线:020-85648757 85648755 85648616 0755-27912581 客服:020-85648756 0755-27912581 业务传真:020-32579052
广州市网景网络科技有限公司 Copyright◎2003-2008 Veelink.com. All Rights Reserved.
广州商务地址:广东省广州市黄埔大道中203号(海景园区)海景花园C栋501室
= 深圳商务地址:深圳市宝源路华丰宝源大厦606
研发中心:广东广州市天河软件园海景园区 粤ICP备05103322号 工商注册