すべて私は次のifステートメントをswitchステートメントに変換しようとしていました。if-elseステートメントをswitchステートメントに変換しようとしましたが、エラーが発生しました。
/**
* Return appropriate comment for given score and par for hole.
* You can assume that score is not less than 4 below par for hole.
* For example, if score is 4 below par, return "condor!!!!",
* if score is 3 below par, return "albatross!!!",
* if score is 2 below par, return "eagle!!", etc.
* See Assign 2 description for full list of comments.
* @param score
* @param parForHole
* @return appropriate comment for given score and par for hole.
*/
public static String comment(int score, int parForHole) {
if (score == parForHole-4)
return "condor!!!!";
if (score == parForHole-3)
return "albatross!!!";
if (score == parForHole-2)
return "eagle!!";
if (score == parForHole-1)
return "birdie!";
if (score == parForHole)
return "par";
if (score == parForHole+1)
return "bogey";
if (score == parForHole+2)
return "double bogey";
if (score == parForHole+3)
return "triple bogey";
return "Not valid"; // Replace by a suitable switch stmt.
}
これは私の試みだった:私はこれを実行しようとすると
public static String comment(int score, int parForHole) {
String monthString;
switch (score) {
case parForHole-4: monthString = "condor!!!!";
break;
case parForHole-3: monthString = "albatross!!!";
break;
case parForHole-2: monthString = "eagle!!";
break;
case parForHole-1: monthString = "birdie!";
break;
case parForHole: monthString = "par";
break;
case parForHole+1: monthString = "bogey";
break;
case parForHole+2: monthString = "double bogey";
break;
case parForHole+3: monthString = "triple bogey";
break;
default: monthString = "Invalid";
break;
}
return monthString;
}
、日食は私に、「ケース式は定数式でなければならない」という、それぞれの場合の条件のためにエラーが発生します。この問題を克服する方法がわかりません。誰か助けてくれますか?ありがとう。 switch
文のcase
で
'case式は定数式でなければなりません.'ここではswitch caseを使うことはできません。それはすべてです – Danh