java - java中的switch语句接受哪些数据类型

标签 java eclipse switch-statement type-conversion

这段代码有错误

System.out.println("enter grade ");
Scanner input2 = new Scanner(System.in);
String grade = input2.nextLine();
switch(grade)
{
  case "a":
    g=10;
    break;
  case "b":
    g=8;
    break;
  default:
   System.out.println("invalid grade");
   break;
}

我正在使用 eclipse kepler。它给了我正确的输出。

但是在 eclipse helios 中编写相同的代码时,它表示如下:

无法打开字符串类型的值。只允许可转换的 int 值或枚举常量

帮我解决这个问题。

最佳答案

您正在使用 JDK <1.7 . Switch 在 Strings 上将无法在 JDK 下工作。

所以转向 1.7 或者不要在 Switch case 中使用字符串.

可能是 char类型适合您,因为您使用的是单个 characterString满足您的需求。

往那边看。然后转身

//logic to get grade char and then 
    switch (grade) {
            case 'a':
                g = 10;
                break;
            case 'b':
                g = 8;
                break;
            default:
                System.out.println("invalid grade");
                break;
            }

关于java - java中的switch语句接受哪些数据类型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19449806/

相关文章:

java - 使用 Hibernate 迭代结果集而不立即加载所有结果的惯用方法是什么?

java - gradle junit 类别具有不同类别的附加测试任务

java - Google 电子表格 API - 获取永久访问 token

java - 当我将撇号放入 .properties 文件中时,为什么 mvn clean install 失败?

python - 为什么 Python 没有 switch-case? (2021年更新: match-case syntax was added to Python 3. 10)

java - switch 语句仅递增一次

java - 在java中翻转图像

eclipse - Hibernate映射找不到资源

android - 声明安卓 :id why use a "+"?

ios - 与数组匹配的 Swift 开关模式