默认情况下,为什么在交换机循环中需要C#break? [重复]

问题描述 投票:3回答:1

这个问题在这里已有答案:

default之后,控制应该自动从switch loop出来。但是C#需要使用break语句吗?在switch loop之后,为什么C#控件不会自动从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");
    }
}
} 

它给了我错误 -

(23,5):错误CS8070:控制不能从最终案例标签中切换掉('default:')

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

c# switch-statement default break
1个回答
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();
}

在案例1中的上述代码中,您只需要DoSomething()DoSomething()并转到案例2?避免这种错误(忘记休息)。

你可以在default阻止另一个案例后你可以忘记添加休息。

© www.soinside.com 2019 - 2024. All rights reserved.