是的,switch() 括号内的值必须是整型或字符型。

Switch 语句用于根据表达式的值执行不同的代码块。switch() 括号内的表达式必须能够解析为一个整型或字符型值,以便与 case 语句中的值进行比较。

这是因为 switch 语句的机制是根据表达式的值,在 case 语句列表中查找匹配的值。如果表达式不是整型或字符型,则无法进行有效的比较。

例如,以下代码是合法的:

int day = 2;

switch (day) {
  case 1:
    printf("星期一");
    break;
  case 2:
    printf("星期二");
    break;
  default:
    printf("其他日期");
}

而以下代码是非法的:

char grade = 'A';

switch (grade) {
  case "A":
    printf("优秀");
    break;
  case "B":
    printf("良好");
    break;
  default:
    printf("其他");
}

因为 case 语句中使用的不是整型或字符型值。

在实际应用中,您可以通过将非整型或字符型数据转换为整型或字符型来使用 switch 语句。例如,您可以使用 toString() 方法将字符串转换为字符型,或使用 parseInt() 方法将字符串转换为整型。


原文地址: https://www.cveoy.top/t/topic/nqhy 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录