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:')
但是在取消注释中断部分时,代码工作正常。
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阻止另一个案例后忘记添加中断。
| 归档时间: |
|
| 查看次数: |
2070 次 |
| 最近记录: |