import java.util.*;
public class Grade{
             public static void main(String args[]){
               Scanner in=new Scanner(System.in);
               System.out.println("请输入等级:");
            String grade=in.nextLine();
             switch(grade){
                       case"A":System.out.println(grade+"is 85~100");
                               break;
                       case"B":System.out.println(grade+"is 70~84");
                               break;
                       case"C":System.out.println(grade+"is 60~69");
                               break;
                       case"D":System.out.println(grade+"is<60") ;
                               break;
                        default:System.out.println("input error");
                                  }         
                        }
             }
错在何处。。

解决方案 »

  1. case"A" jdk1.7貌似才支持String可以修改case 'A'
      

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


  3. import java.util.*;public class Grade {
    public static void main(String args[]) {
    Scanner in = new Scanner(System.in);
    System.out.println("请输入等级:");
    String grade = in.nextLine();
    switch (grade.charAt(0)) {
    case 'A':
    System.out.println(grade + "is 85~100");
    break;
    case 'B':
    System.out.println(grade + "is 70~84");
    break;
    case 'C':
    System.out.println(grade + "is 60~69");
    break;
    case 'D':
    System.out.println(grade + "is<60");
    break;
    default:
    System.out.println("input error");
    }
    }
    }
      

  4. charAt()曾经看到过 但忘记了 ls能说下不
      

  5. 通过查看书本,得到结果:
    switch语句的语法格式:
    switch(表达式){
        case 常量1:语句组1;break;
        case 常量2:语句组2;break;
        ...
        default:语句组;break;
    }
    注意:表达式的计算结果必须是int型或字符型。当用byte,short或char类型时,要进行提升。java规定switch语句不允许使用浮点型或long型表达式。
      

类似问题 »