Menu
CoddyTech

switch 语句

本课属于 Coddy C# 学习旅程的“基础知识”单元。第 27 课,共 69 课。

switch 语句就像多分支的 if 语句。它不会只判断一个条件,而是会将变量的值与多个情况进行比较,并运行与匹配情况相关的代码。

下面是 switch 语句的基本结构:

switch (variable) {
    case value1:
        // 如果 variable 等于 value1,则执行的代码
        break;
    case value2:
        // 如果 variable 等于 value2,则执行的代码
        break;
    // ... 更多 case 分支
    default:
        // 如果没有匹配的 case,则执行的代码
        break;
}
  • switch 关键字后面要在括号中写入你想要测试的变量。
  • 每个 case 都代表变量的一个可能值。
  • 如果变量与某个 case 的值匹配,就会执行该 case 中的代码。
  • 每个非空的 case 都必须以 break(或 return)结束,以退出 switch。省略它会导致编译错误:与 C 或 Java 不同,C# 不允许执行从一个 case“贯穿”到下一个 case。只有像下面这样堆叠在一起的空 case 标签才会共用代码。
  • default 分支是可选的,如果没有其他分支匹配,就会执行它。

来看一个例子:

int day = 3;
string dayName;
switch (day) {
    case 1:
        dayName = "Monday";
        break;
    case 2:
        dayName = "Tuesday";
        break;
    // ……其他日期对应的 case
    default:
        dayName = "Invalid day";
        break;
}

你也可以将多个 case 合并为一个:

int day = 3;
string dayName;
switch (day) {
    case 1:
    case 2:
    case 3:
        dayName = "Start of week";
        break;
    // ……其他日期对应的 case
    default:
        dayName = "Invalid day";
        break;
}
challenge icon

挑战

入门

创建一个程序,输入月份编号(1 表示 January,2 表示 February,以此类推),并输出该月份所属的季节。使用 switch 语句实现逻辑。

季节及其对应的月份如下:

  • Winter:December(12)、January(1)、February(2)
  • Spring:March(3)、April(4)、May(5)
  • Summer:June(6)、July(7)、August(8)
  • Autumn:September(9)、October(10)、November(11)

输出的季节名称必须与上面所写完全一致,使用英文。

亲手试试

using System;

public class Program {
    public static void Main(string[] args) {
        int month = int.Parse(Console.ReadLine());
        string season = "";
        
        // 在下方编写代码
        
        
        Console.WriteLine(season);
    }
}
quiz icon自我测试

这节课包含一个小测验。开始学习即可作答,并记录你的进度。

基础知识中的所有课

自己练习: C# 在线编译器