关于#c++#的问题:switch语句中小括号内提示 表达式必须包含整数或枚举类型 是什么意思呢

switch语句中小括号内提示 表达式必须包含整数或枚举类型 是什么意思呢?难道只能是int型的嘛 不能是string字符串型嘛?

不可以哦,望采纳哦

switch只能针对整型,不可以是字符串。
枚举型也是整型。默认下第一个枚举值就是0,后面逐个递增1

在 switch 语句中,括号内的表达式的类型必须是整数类型(包括 char 和枚举类型),不能是浮点数或字符串等其他类型。

这是因为 switch 语句会对表达式的值进行比较,如果表达式的类型不是整数类型,那么就无法使用 switch 语句进行比较。

例如以下是一个合法的 switch 语句:

switch (x) {
  case 1:
    // do something
    break;
  case 2:
    // do something else
    break;
  default:
    // do something else
    break;
}

在这个例子中,x 的类型可以是整数类型,比如 int 或者 char。

如果想使用字符串作为 switch 语句的表达式,可以使用 if 语句来代替 switch 语句。

if (str == "hello") {
  // do something
} else if (str == "world") {
  // do something else
} else {
  // do something else
}

在这个例子中,str 的类型可以是字符串类型。
仅供参考,望采纳,谢谢。