📜  C#中的Switch语句(1)

📅  最后修改于: 2023-12-03 15:00:17.102000             🧑  作者: Mango

C#中的Switch语句

在C#中,Switch语句是一种用于将一个值与多个可能的常量值进行比较的结构。

语法
switch (expression)
{
    case value1:
        // Statements to execute when expression equals value1
        break;
    case value2:
        // Statements to execute when expression equals value2
        break;
    ...
    default:
        // Statements to execute when none of the above cases are true
        break;
}
  • expression:需要比较的表达式。
  • value1value2等:可能的常量值。
  • default:可选的语句块,用于处理当表达式不等于任何一个值时的情况。
实例

以下是Switch语句的示例,用于确定给定月份的天数:

public static int GetDaysInMonth(int year, int month)
{
    int daysInMonth = 0;
    switch (month)
    {
        case 1:
        case 3:
        case 5:
        case 7:
        case 8:
        case 10:
        case 12:
            daysInMonth = 31;
            break;
        case 4:
        case 6:
        case 9:
        case 11:
            daysInMonth = 30;
            break;
        case 2:
            if (IsLeapYear(year))
            {
                daysInMonth = 29;
            }
            else
            {
                daysInMonth = 28;
            }
            break;
        default:
            throw new ArgumentOutOfRangeException("month", "Month must be between 1 and 12.");
    }
    return daysInMonth;
}

public static bool IsLeapYear(int year)
{
    return (year % 4 == 0 && year % 100 != 0) || (year % 400 == 0);
}

注意:如果一个case语句没有使用break语句,所有在该case语句后的语句块也将被执行。这称为“fall-through”。

总结

Switch语句是一种方便的用于比较表达式和常量值的结构。通过使用Switch语句,您可以更清晰和简洁地编写代码。不过请注意,当case语句没有使用break语句时,代码的行为可能会产生意外的结果,因此请特别小心。