Ins*_*ing -6 java switch-statement
我有一个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;
}
Run Code Online (Sandbox Code Playgroud)
Jon*_*eet 10
A
不是有效的字符文字 - 'A'
是.
所以你要:
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;
}
Run Code Online (Sandbox Code Playgroud)
对于等级不是其中之一的情况,您也应该有一个默认情况.
哦,你的代码也可以写成:
nv[i] = "FDCBA".indexOf(grade);
Run Code Online (Sandbox Code Playgroud)
nv[i]
之后检查为-1(意味着等级不在该组中).