这个问题在这里已有答案:
在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:')
但是在取消注释中断部分代码工作正常。
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
阻止另一个案例后你可以忘记添加休息。