2012-09-07 71 views
0

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

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

回答

0

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

0

好像你需要一个“其他”末

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如果(标记< 50)`虽然我们知道这里没有失败的posiblity但程序以这种方式运行语句失败只能像我做的那样使用

0

您必须在此输出其他字符并返回字符串值,否则语句将不会执行。试试吧,希望它能帮助你。

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

OR

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; 

我希望第二个是好的,因为它总是有回报的路径和返回的东西调用者。