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”,而不是人员的姓名。
-如果1st,2nd和3rd不正确,我正在尝试编写IF语句,而是返回n / a。
最佳答案
出于以下两个原因,您将永远不会执行details += "n/a"
:
您正在将hasFinished
分配给true
中的if
(正如其他人所指出的那样):
else if (hasFinished = true)
它应该是
else if (hasFinished)
最重要的是,您的代码具有以下形式:
if (false) {
...
} else {
if (true) {
} else {
//this is false, it was supposed to be hitted before
}
}
因此,即使您进行了第一个修复,其背后的逻辑也没有任何意义。您应该在第二个
if
中使用另一个评估来处理最后一个else
语句。例如:if (!hasFinished) {
...
} else {
//the hasFinished usage here has no sense, being commented
//just left it to show this is supported
//if (hasFinished && someValue <= someOtherValue) {
if (someValue <= someOtherValue) {
...
} else {
...
}
}
关于java - 查询if语句,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/19141542/