如何获取枚举值是否> C++枚举的开关语句中的常量 N?

How to get if enum value is > const N inside switch statement for C++ enum?

本文关键字:枚举 C++ 开关 语句 常量 何获取 获取 是否 gt      更新时间:2023-10-16

具有:

switch(val){
    case 1:
    break;
    case 2:
    break;
}

是否可以为const long long N = 100;添加case val > N:

是的,但不是交换机的一部分,这样做:

if ( val > N)
{
   // whatever
} else {
  switch(val){
    case 1:
    break;
    case 2:
    break;
  }
}

case只能是单个常数值。之所以如此,是因为C的switch语句本应作为跳转表实现。更高级别的语言经常允许更复杂的比较,这使得它有效地为一系列if () {} else if () {}语句提供了语法糖。

我可以建议这样做:

switch(val){
    case 1:
    break;
    case 2:
    break;
    case 3:
    case 4: //etc
    default:
     //case > 100
}

否,C++switch情况只处理单个值。

您可以添加一个带有if语句的default大小写来检查范围。或者直接使用if而不使用switch