gpt4 book ai didi

javascript - 列出从现在到用户输入的特定数字的所有闰年

转载 作者:行者123 更新时间:2023-12-03 05:46:14 25 4
gpt4 key购买 nike

编写一个函数来确定接下来的 n 年中哪一年是闰年。如果调用者传入 300,则程序应返回 2016 到 2316 之间的闰年。

闰年是任何可以被 4 整除的年份(例如 2012 年、2016 年等),但如果它可以被 100 整除,那么它就不是(例如 2100 年、2200 年等),除非能被400整除就是(如2000、2400)。

我的第一次尝试是这样的:

 function leapYear(number) {
var year = 2016 + number;
var tracker = [];
for(i = 2016; i <= year; i++) {
if(i % 100 !== 0) {
tracker.push(i);
} else if(i % 400 === 0) {
tracker.push(i);
} else if(i % 4 === 0) {
tracker.push(i);
} else {
return tracker;
}
}
return tracker;

}
console.log(leapYear(300));

我意识到这是错误的,因为我没有正确使用 if else 语句,当你在 else if 上添加条件时,这意味着 if 语句条件不满足。这是我的第二次尝试。

function leapYear(number) {
var year = 2016 + number;
var tracker = [];
for(i = 2016; i <= year; i++) {
if(i % 4 === 0 || i % 400 === 0 && i % 100 !== 0) {
tracker.push(i);
} else {
return tracker;
}
}
}
console.log(leapYear(300));

我已经尝试了几种这样的组合,但没有任何效果。有人能告诉我为什么这只打印出[2016]?

最佳答案

尝试使用继续而不是返回,更新后的代码如下:

function leapYear(number){
var year = 2016 + number;
var tracker = [];
for(i=2016 ; i <= year ; i++ ){
if(i % 4 ===0 || i % 400 ===0 && i % 100 !== 0){
tracker.push(i);
}
else{
continue;
}
}
return tracker;
}

console.log(leapYear(300));

关于javascript - 列出从现在到用户输入的特定数字的所有闰年,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40324662/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com