【发布时间】:2010-09-09 06:35:56
【问题描述】:
有没有办法通过多个case语句而不重复声明case value:?
我知道这行得通:
switch (value)
{
case 1:
case 2:
case 3:
// Do some stuff
break;
case 4:
case 5:
case 6:
// Do some different stuff
break;
default:
// Default stuff
break;
}
但我想做这样的事情:
switch (value)
{
case 1,2,3:
// Do something
break;
case 4,5,6:
// Do something
break;
default:
// Do the Default
break;
}
这是我从不同语言中想到的语法,还是我遗漏了什么?
【问题讨论】:
-
您是否有理由不只使用 IF 语句(如果您正在检查整数范围)?
-
是的,charlse,第一种方法很好用,我在很多地方都用过。它比我想要的更脏,但它很有用。我只是以这些整数为例。真实数据更加多样化。 if (1 || 2 || 3 ) {...} else if (4 || 5 || 6) {...} 也可以,但更难阅读。
-
为什么你认为后者比前者更脏。后者为
,添加了另一种含义,并且不与任何其他c 风格语言共享。这对我来说似乎更脏。 -
您可能已经从 Ruby 中学习了 2nd 的语法。这就是它在该语言中的工作方式(尽管 switch 变成了 case,case 变成了 when 等等。)
-
重要提示。从 C# v7 开始的 switch case 支持范围 - 请参阅 Steve G. 的 answer
标签: c# switch-statement