0
public String toString() {

String details = number + ", " + RACE_DESCRIPTIONS[typeIndex] + "[" + date + "]" + ":";
if (!hasFinished) {
  details += "Race not finished";
} else if  (hasFinished = true) {
  details += "\n     1st: " + competitors[0].getName();
  details += "\n     2nd: " + competitors[1].getName();
  details += "\n     3rd: " + competitors[2].getName();
} else if {
  details += "n/a"; 
}
return details;

位置が設定されていない場合は、人物の名前の代わりに文字列リテラル "n/a" が返されます。- 1 番目、2 番目、3 番目が true ではなく、代わりに n/a が返される場合に IF ステートメントを記述しようとしています。

4

4 に答える 4

1

=演算子を使用して値を比較しないでください。booleanこれは代入演算子であるため、常にtrue. それはすでにbooleanです、ただ使用してください:

} else if (hasFinished) {

さらに、 it'sfalseまたは it'sのいずれかでtrueあるため、3 番目のケースは必要ありません。削除できます

else if {
  details += "n/a"; 
}

とにかく構文的に間違っていました。

于 2013-10-02T16:09:14.730 に答える
0

=割り当てに==使用され、比較に使用されます。次のステートメントで==代わりに使用します。=

else if  (hasFinished = true)

これにより、実際には hasFinished 値に true が割り当てられ、条件も常に true と評価されます。次のように変更します。

else if  (hasFinished == true)

割り当ての代わりに比較を行うため

于 2013-10-02T16:09:02.613 に答える