-6

我有一个 switch 语句,它采用字母等级并返回相应的 GPA;但是,它会为字母(A、B、C、D 和 F)引发找不到符号错误!我检查了 javaDocs 以获取指导,但找不到错误。是什么导致了这个错误?

switch (grade) {
        case A:  nv[i] = 4; //nv = numerical value
                 break;
        case B:  nv[i] = 3;
                 break;
        case C:  nv[i] = 2;
                 break;
        case D:  nv[i] = 1;
                 break;
        case F:  nv[i] = 0;
                 break;
    }
4

1 回答 1

10

A不是有效的字符文字 - 'A'is。

所以你要:

switch (grade) {
    case 'A':  nv[i] = 4; //nv = numerical value
             break;
    case 'B':  nv[i] = 3;
             break;
    case 'C':  nv[i] = 2;
             break;
    case 'D':  nv[i] = 1;
             break;
    case 'F':  nv[i] = 0;
             break;
}

对于成绩不是其中之一的情况,您可能还应该有一个默认情况。

哦,你的代码也可以写成:

nv[i] = "FDCBA".indexOf(grade);

之后检查为nv[i]-1(意味着成绩不在该集合中)。

于 2013-01-23T18:00:40.943 回答