c++ - 如果 C++ 枚举的 switch 语句中的枚举值 > const N,如何获取?

标签 c++ switch-statement

拥有:

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

是否可以向其中添加 case val > N: for const long long N = 100;

最佳答案

是的,但不是作为开关的一部分,执行此操作:

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

case 只能是单个常量值。之所以这样,是因为 C 的 switch 语句应该可以作为跳转表来实现。高级语言通常允许更复杂的比较,使其成为一系列 if () {} else if () {} 语句的有效语法糖。

关于c++ - 如果 C++ 枚举的 switch 语句中的枚举值 > const N,如何获取?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15226367/

相关文章:

javascript - 使用 jquery/javascript 的 switch 语句和循环

c++ - 如何循环 switch 语句直到找到所需的数字?

java - 在开关盒上放一个环。当用户选择选项 5 时退出菜单

c++ - 使用 6 位设置 float 的小数部分

c++ - OpenCV 双矩阵除以标量产生不正确的结果

'where' 子句中的 SQL Switch/Case

java - HashMap vs Switch 语句性能

c++ - visual studio中的资源文件

Android 和 Crypto++ AES 128 位加密结果不匹配

c++ - "Overloading"带有 SFINAE 的构造函数