JavaScript课程闰年判断问题求助:多次尝试仍无法解决
解决JavaScript闰年判断问题的思路与代码实现
嘿,我完全懂你刚学JavaScript时遇到这类逻辑问题卡壳的感觉——别慌,咱们把这个闰年判断的规则拆解开,一步步理清楚逻辑就好办了!
首先再明确一遍题目里的闰年规则,按优先级排序很关键:
- 能被400整除的年份,一定是闰年
- 排除上面的情况后,能被100整除的年份,不是闰年
- 再排除上面的情况后,能被4整除的年份,是闰年
- 剩下的所有年份,都不是闰年
为什么要按这个顺序?因为如果先判断「能被4整除」,像1900年这种能被100整除但不能被400整除的年份,会被错误判定为闰年,所以必须从最特殊的情况(400整除)开始判断。
完整代码实现
function isLeapYear(year) { // 第一步:判断是否能被400整除 if (year % 400 === 0) { return true; } // 第二步:排除400的情况后,判断是否能被100整除 if (year % 100 === 0) { return false; } // 第三步:排除前两种情况后,判断是否能被4整除 if (year % 4 === 0) { return true; } // 所有情况都不满足,返回非闰年 return false; }
测试几个典型案例验证一下
isLeapYear(2000)→ 返回true(符合400整除规则)isLeapYear(1900)→ 返回false(能被100整除但不能被400整除)isLeapYear(2024)→ 返回true(能被4整除,不满足前两个规则)isLeapYear(2023)→ 返回false(都不满足)
你可以把自己尝试过的代码和这个对比下,看看是不是判断顺序搞反了,或者条件写漏了。如果还有细节不清楚,随时问哦!
内容的提问来源于stack exchange,提问作者rkdrper




