所以我昨晚发布了这个程序,并且仍然是我的OOP padawan,我很困惑为什么我的方法中的其余if-else
将不会执行。在执行我的return语句之前,我运行了de-bugger并且它只查看了我的if
而不是if-else
。这导致我的输出没有像预期的那样改变。这是提到的方法:
public String getBadge(int requestedStat) {
String badgeOutput = "";
if (requestedStat >= 0 && requestedStat <=9) {
for (int i = 0; i < badgeRanks.length-5; i++) {
if (gamerActions[requestedStat] >= badgePoints[requestedStat][i]
&& gamerActions[requestedStat] < badgePoints[requestedStat][i + 1]) {
badgeOutput = badgeTitles[requestedStat] + badgeRanks[i];
} else if (gamerActions[requestedStat] >= badgePoints[requestedStat][i + 1]
&& gamerActions[requestedStat] < badgePoints[requestedStat][i + 2]) {
badgeOutput = badgeTitles[requestedStat] + badgeRanks[i + 1];
} else if (gamerActions[requestedStat] >= badgePoints[requestedStat][i + 2]
&& gamerActions[requestedStat] < badgePoints[requestedStat][i + 3]) {
badgeOutput = badgeTitles[requestedStat] + badgeRanks[i+2];
} else if (gamerActions[requestedStat] >= badgePoints[requestedStat][i + 3]
&& gamerActions[requestedStat] < badgePoints[requestedStat][i + 4]) {
badgeOutput = badgeTitles[requestedStat] + badgeRanks[i+3];
} else if (gamerActions[requestedStat] >= badgePoints[requestedStat][i + 4]
&& gamerActions[requestedStat] < badgePoints[requestedStat][i + 5]) {
badgeOutput = badgeTitles[requestedStat] + badgeRanks[i+4];
} else {
badgeOutput = badgeTitles[requestedStat] + badgeRanks[i+5];
}
}
} else {
badgeOutput = "No Badges Available";
}
return badgeOutput;
}
我知道我的设计可能不是最光滑的方式,这就是我得到的。我究竟做错了什么? 这里还有另一篇文章,其中包含其他所有类:Difficulty navigating 2d String array that correlates to another 2d int array
答案 0 :(得分:1)
if语句,else if if stattement和else语句应涵盖代码中可能存在的不同,非重叠条件。
例如:
class IfElseDemo {
public static void main(String[] args) {
int testscore = 76;
char grade;
if (testscore >= 90) {
grade = 'A';
} else if (testscore >= 80) {
grade = 'B';
} else if (testscore >= 70) {
grade = 'C';
} else if (testscore >= 60) {
grade = 'D';
} else {
grade = 'F';
}
System.out.println("Grade = " + grade);
}
}
如果没有完整的程序,很难说,但似乎你的其他陈述与if语句重叠。由于满足if语句,程序不需要考虑else if if。
来自https://docs.oracle.com/javase/tutorial/java/nutsandbolts/if.html