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

Pra*_*aja 3 java eclipse type-conversion switch-statement

我在这段代码中出错了

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;
}
Run Code Online (Sandbox Code Playgroud)

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

但是用eclipse helios写的相同的代码,它说:

Cannot switch on a value of type String. Only convertible int values or enum constants are permitted

帮我解决这个问题.

Sur*_*tta 11

你正在使用JDK <1.7.Switch在字符串上不能在JDK下面工作.

所以转移到1.7或不使用String 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;
            }
Run Code Online (Sandbox Code Playgroud)