Java if语句无法按规则累加PerfectQuarter计数问题排查
逻辑错误点
- 第一,条件分支冗余且判断逻辑顺序错误:
第一个if条件是teamOneQuarterOne > teamTwoQuarterOne,第二个else if的条件teamTwoQuarterOne < teamOneQuarterOne和第一个if的判断完全等价,永远不会触发。当出现0-1也就是team1得分小于team2的情况时,前两个分支都不满足,会走到第三个else if (teamOneQuarterOne < teamTwoQuarterOne)的分支里,但这个分支没有加PerfectQuarter的计数逻辑,自然不会给team2累加计数。 - 第二,已有的PerfectQuarter判断逻辑完全写反:
在teamOneQuarterOne > teamTwoQuarterOne的分支里,你写的判断条件是teamOneQuarterOne == 0 && teamTwoQuarterOne > 0,但这个分支的前提是team1得分更高,team1得0的情况下不可能比team2得分高,这个判断永远为假。同理第二个else if里的判断也和分支场景不匹配。
修正后代码
if (teamOneQuarterOne > teamTwoQuarterOne) { teamOneStats += "W-"; teamTwoStats += "L-"; // 队1赢的场景下,完美局是队2得0、队1得分 if (teamTwoQuarterOne == 0 && teamOneQuarterOne > 0) { teamOnePerfectQuarter++; } } else if (teamOneQuarterOne < teamTwoQuarterOne) { teamOneStats += "L-"; teamTwoStats += "W-"; // 队2赢的场景下,完美局是队1得0、队2得分 if (teamOneQuarterOne == 0 && teamTwoQuarterOne > 0) { teamTwoPerfectQuarter++; } } else { teamOneStats += "T-"; teamTwoStats += "T-"; } System.out.println(teamOne + " Perfect Quarters: " + teamOnePerfectQuarter); System.out.println(teamTwo + " Perfect Quarters: " + teamTwoPerfectQuarter);
内容的提问来源于stack exchange,提问作者G90
相关产品推荐
相关产品推荐

