方法不返回字符串

时间:2012-09-07 03:20:19

标签: string methods

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

private String getGrade(int marks)throws Exception {                ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 此方法必须返回String

类型的结果

代码是:

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;
}

5 个答案:

答案 0 :(得分:0)

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

答案 1 :(得分:0)

好像你最后需要'其他'

答案 2 :(得分: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(标记&lt; 50)`语句失败了,虽然我们知道这里没有失败的可能性,但程序以这种方式运行只能像我一样使用

答案 3 :(得分:0)

你必须在这里输出else并返回一个字符串值,否则语句将不会执行。试试吧,希望它能帮到你。

答案 4 :(得分: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;

我希望第二个好,因为它总是有返回路径并将某些内容返回给调用者。