Switch case execute code without breaking C#
本问题已经有最佳答案,请猛点这里访问。
在C中,是否有可能在不中断的情况下执行开关案例?
这是一个开关示例,其中使用所需的接入
1 2 3 4 5 6 7 8 9 10 11 12 | var bar ="Foo"; switch (foo) { case 0: case 1: bar +=" Bar"; case 2: case 3: Console.WriteLine(bar); break; default: break; } |
这就是代码应该产生的结果:
1 2 3 4 5 | 0: Foo Bar 1: Foo Bar 2: Bar 3: Bar Else: nothing |
是否可以这样做,或者我必须这样做:
1 2 3 4 5 6 7 8 9 10 11 12 | var bar ="Foo"; if(foo == 0 || foo == 1) bar +=" Bar"; switch (foo) { case 0: case 1: case 2: case 3: Console.WriteLine(bar); break; default: break; } |
这被称为隐式坠落,C中不支持这种坠落。
不过,您可以使用
1 2 3 4 5 6 7 8 9 10 11 12 13 | var bar ="Foo"; switch (foo) { case 0: case 1: bar +=" Bar"; goto case 2; case 2: case 3: Console.WriteLine(bar); break; default: break; } |
如果代码中不强制使用
1 2 3 4 5 6 7 8 | var bar ="Foo"; if(foo == 0 || foo == 1) bar +=" Bar"; if(foo >= 0 && foo <= 3) //Replacement of switch with single if condition Console.WriteLine(bar); Output: if foo == 1 then print ->"Foo Bar" if foo == 3 then print ->"Foo" |