Abr*_*ham 15 c# c++ switch-statement
我刚刚开始自学C#,在关于Switch语句的教程中,我读到:
禁止执行流程从一个案例块流向下一个案例块的行为是C#与C++不同的一个区域.在C++中,允许case语句的处理从一个到另一个.
为什么它在C#中的一个案例陈述后停止?如果您可以break在任何时候使用该语句停止,那么在C#与C++之后是否有任何理由让它在找到匹配后停止?如果你想在C#中使用多个案例,你是否需要使用另一个Switch语句?
das*_*ght 16
从技术上讲,这是不正确的:C#确实允许在身体case空的时候掉头:
switch(val) {
case 1:
case 2:
Console.WriteLine("small");
break;
case 3:
case 4:
case 5:
case 6:
case 7:
Console.WriteLine("medium");
break;
default:
Console.WriteLine("large");
break;
}
Run Code Online (Sandbox Code Playgroud)
在C/C++中非空体后允许隐式直通是错误地完成的.这就是为什么C#的设计者决定不允许它.