0

我正在编写一个方法,该方法为某个标记的输入返回一个字符串。它被赋予一个标记,然后确定该标记适合的等级。但它给了我这个错误:

private String getGrade(int mark) throws Exception{ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 这个方法必须返回字符串类型的结果

代码是:

String a = "A, Well done!";
String b = "B, still room for improvement.";
String c = "C, need to improve a lot!";
String d = "D, you got lucky!";
String e = "You failed, please retake the test!";


if (marks>80 || marks==80){
return a;
} else if (marks>70 && marks<80 || marks==70){
return b;
}else if (marks>60 && marks<70 || marks==60){
return c;
} else if (marks>=50 && marks <60){
return d;
}else if (marks<50){
return e;
}
4

5 回答 5

0

看起来你最后需要一个“其他”

于 2012-09-07T03:29:16.273 回答
0
String a = "A, Well done!";
String b = "B, still room for improvement.";
String c = "C, need to improve a lot!";
String d = "D, you got lucky!";
String e = "You failed, please retake the test!";


if (marks>80 || marks==80){
return a;
} else if (marks>70 && marks<80 || marks==70){
return b;
}else if (marks>60 && marks<70 || marks==60){
return c;
} else if (marks>=50 && marks <60){
return d;
}else{
return e;
}

正如你t return a value if所做的那样 if (marks<50)` 语句失败,虽然我们知道这里没有失败的可能性,但程序以这种方式运行只能像我一样使用

于 2012-09-07T03:30:16.100 回答
0

你必须在这里放出else并返回一个字符串值,否则语句将不会执行。试试看,希望对你有帮助。

于 2012-09-07T03:37:12.343 回答
0

编译器不会尝试足够聪明地评估所有可能的情况并确保您始终在条件的所有分支中返回一个字符串。您还需要有一个没有返回默认值(即字符串)的else子句。if

于 2012-09-07T03:28:44.353 回答
0

你可以试试这个,它可能对你有帮助。

String a = "A, Well done!";
String b = "B, still room for improvement.";
String c = "C, need to improve a lot!";
String d = "D, you got lucky!";
String e = "You failed, please retake the test!";


if (marks>=80){
return a;
} else if (marks>=70) {
return b;
} else if (marks>=60){
return c;
} else if (marks>=50){
return d;
} else {
return e;
}

或者

String a = "A, Well done!";
String b = "B, still room for improvement.";
String c = "C, need to improve a lot!";
String d = "D, you got lucky!";
String e = "You failed, please retake the test!";
String r=""

if (marks>=80){
r=a;
} else if (marks>=70) {
r=b;
} else if (marks>=60){
r=c;
} else if (marks>=50){
r=d;
} else {
r=e;
}

return r;

我希望第二个很好,因为它总是有返回路径并向调用者返回一些东西。

于 2012-09-07T04:36:51.207 回答