可以使用变量切换语句

Can switch statements use variables?

本文关键字:语句 变量 可以使      更新时间:2023-10-16

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

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

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

const int x = 3;

那么它是有效的

switch语句可以使用变量吗?

是的。这很好,

int i = 0;
switch (i) {
}

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

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