为什么在默认情况下,切换循环中需要 C# 中断?

shi*_*tar 5 c# default break switch-statement

之后default,控制应该会自动出来switch loop。但是 C# 需要使用 break 语句吗?在C#中控制为什么不会自动到来了switch loop之后default

以下微软文档是这样说的:https : //docs.microsoft.com/en-us/dotnet/csharp/language-reference/keywords/switch

在我的代码中:

using System;

class Program {
static void Main() {
    Console.WriteLine("Enter a number between 1 and 10");
    int num;
    bool validity = int.TryParse(Console.ReadLine(), out num);
    if(validity==true) {
        switch(num) {
            case 1:
            case 2:
            case 3:
            case 4:
            case 5:
            case 6:
            case 7:
            case 8:
            case 9:
            case 10:

                Console.WriteLine("You have entered {0}", num);
                break;
            default:
                Console.WriteLine("You have not entered a number between 1 and 10");
                //break; This part is commented
        }
    } 
    else {
        Console.WriteLine("Please make a valid input");
    }
}
} 
Run Code Online (Sandbox Code Playgroud)

它给了我错误 -

(23,5): 错误 CS8070: 控制不能脱离最终 case 标签的 switch ('default:')

但是在取消注释中断部分时,代码工作正常。

BWA*_*BWA 3

switch(num) {
    case 1:
        DoSomething();
    case 2:
        DoSomething2();
    case 3:
    case 4:
    case 5:
        Console.WriteLine("You have entered {0}", num);
        break;
    default:
        Console.WriteLine("You have not entered a number between 1 and 10");
        //break; This part is commented
    case 6:
        DoSomething3();
}
Run Code Online (Sandbox Code Playgroud)

在上面案例 1 的代码中,您只需要DoSomething()orDoSomething()并转到 case 2?避免此类错误(忘记中断)。

您可以在default阻止另一个案例后忘记添加中断。