【发布时间】:2014-02-27 21:41:10
【问题描述】:
有没有办法在 C++ 中编写一个处理范围的 switch 语句。 案例0-10做一个, 案例20-40做b, 案例40-80做c, 等等 我可以使用一堆 if else if 语句将其写出来,但想知道是否有更有效的方法。
【问题讨论】:
-
您可以一个接一个地列出多个值,但我不知道有没有办法有一个“范围”。也许使用一些棘手的预处理器 (ab) 可以完成(想想看,P99 有这样的宏......)
-
我不知道用任何语言实现这一点的方法,更不用说 C++。 switch 语句通常用于匹配精确值,而不是范围。
-
如果您尝试做这样的事情,switch 语句可能不是正确的构造。一般来说,当你有一组离散的可能性并且你不想用一堆 if 语句弄乱你的代码时,最好使用这些。
-
帕斯卡有这个。我一直在 C 及其衍生物中错过它。例如,在手写扫描仪时非常有用,并且在编译器中实现起来非常便宜。
标签: c++ switch-statement range