0

特定のマークの入力に対して文字列を返すメソッドを書いています。マークが付けられ、そのマークが適合するグレードが決定されます。しかし、それは私にこのエラーを与えます:

private String getGrade(int マーク) 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;
}
4

5 に答える 5

0

ここにelseを入れて文字列値を返す必要があります。そうしないと、ステートメントは実行されません。それを試してみてください、それがあなたを助けることを願っています。

于 2012-09-07T03:37:12.343 に答える
0

最後に「else」が必要なようです

于 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したように (marks<50)` ステートメントは失敗しますが、ここでは失敗する可能性はありませんが、プログラムはこの方法で実行されますが、私が行ったようにのみ使用します

于 2012-09-07T03:30:16.100 に答える
0

コンパイラは、考えられるすべてのケースを評価して、条件のすべての分岐で常に文字列を返すようにするほど賢くはなりません。デフォルト値 (文字列) を返すelseno 句も必要です。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;

常にリターン パスがあり、呼び出し元に何かを返すので、2 番目のものが良いことを願っています。

于 2012-09-07T04:36:51.207 に答える