基本上,你需要檢查你是否真的有三個終結者,這就構成了你的else-if子句。
public String toString()
{
String details = number + ", " + RACE_DESCRIPTIONS[typeIndex] + "[" + date + "]" + ":";
if(!hasFinished) // The race has not yet finished.
{
details += "Race not finished";
}
else if(competitors.length >= 3) // Implies that hasFinished evaluated to true
{
details += "\n 1st: " + competitors[0].getName();
details += "\n 2nd: " + competitors[1].getName();
details += "\n 3rd: " + competitors[2].getName();
}
else // The race has finished, but there are less than three competitors
{
details += "n/a";
}
return details;
}
如果你想允許少於三個競爭對手,但仍然顯示第一/二/三,你可以使用一個三態比較,並與其他人取代你的別的,如果條款。
public String toString()
{
String details = number + ", " + RACE_DESCRIPTIONS[typeIndex] + "[" + date + "]" + ":";
if(!hasFinished)
{
details += "Race not finished";
}
else // Implies that hasFinished evaluated to true
{
details += "\n 1st: " + (competitors.length >= 1 ? competitors[0].getName() : "n/a");
details += "\n 2nd: " + (competitors.length >= 2 ? competitors[1].getName() : "n/a");
details += "\n 3rd: " + (competitors.length >= 3 ? competitors[2].getName() : "n/a");
}
return details;
}
不要使用'='。這是分配操作員。另外'如果'預計一個條件。 –
代碼使它看起來像hasFinished可以有三種狀態:真,假和其他??不是hasFinished布爾? –
你特別聲明你想要3個子句。你究竟想要測試什麼? – James