c++ - 在 switch 语句中将多个案例组合在一起

标签 c++

下面是我的 switch 语句代码:

 switch(pin)
  {
  case 1:
    break;
  case 2:   case 3:  case 4:  case 5:  case 6:  case 7:  case 8:  case 9:  case 10:  case 11:
  case 12:  case 13:  case 14:  case 15:  case 16:  case 17:  case 18:  case 19:  case 20:
  case 21:  case 22:  case 23: case 24:case 25:case 26:case 27:case 28:case 29: case 30: case 31:
  case 32: case 33: case 34: case 35:

    dataOut[pin-2] = 1;
    DAQmxWriteDigitalLines(taskHandleOut,1,1,10.0,DAQmx_Val_GroupByChannel,dataOut,NULL,NULL);

    break;

  default:
    break;

上面把case 2-35归为一组,我的意思是,当pin等于2-35时,要执行特定的任务。

我想知道上面的代码是否有效。我还没有在 switch 语句中看到 case 分组。感谢任何类似多案例分组的网络链接。也许有一些更好的方法可以做到这一点,而不是将多个案例分组。

最佳答案

虽然使用 if-check 可能会更好地处理您的案例 if (pin >= 2 && pin <= 35) , 像这样对案例标签进行分组是很常见的。

gcc/clang/tinycc 甚至还有语法糖:

switch(pin){
case 2 ... 35: /*nonstandard GNU extension; note well the whitespace*/
};

关于c++ - 在 switch 语句中将多个案例组合在一起,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54654454/

相关文章:

具有内存排序的 C++ 原子增量

c++ - 除了使用 inotify 之外如何递归监视目录

C++ 程序在执行 ntdll.dll 时挂起

c++ - Qt layout和splitter的区别

c++ - WASM 链接错误 : function signature mismatch

c++ - 了解如何解决 C++ 中不明确的成员请求

c++ - C++ 中是否有类似于 Java 的 CompareTo 方法,您可以在其中对数据类型使用 > < = 操作

c++ - 为什么必须在运行时构造字符串?

c++ - JNI : How to convert a group of data from c++ to Java

c++ - 更改 win32 应用程序标题栏(标题)的颜色