可以切换语句使用变量吗?

时间:2014-08-06 03:23:13

标签: c++ switch-statement

下面是声明两个int变量并尝试在switch语句中使用它们的代码。这是C ++中的合法操作吗?如果没有,为什么不呢?

int i = 0;
int x = 3;
switch (i)
{
    case x:
    // stuff
    break;

    case 0:
    // other stuff
    break;
}

2 个答案:

答案 0 :(得分:6)

case标签必须是整数常量表达式,因此您的示例无效。但如果x更改为:

const int x = 3;

那么它是有效的。

答案 1 :(得分:3)

  

switch语句可以使用变量吗?

是。这很好,

int i = 0;
switch (i) {
}

但是,case语句不能使用变量(它们必须是常量)。

case 0:
  // first
  break;
case 1:
  // second
  break;
default:
  // other