首页 > 解决方案 > 我的leapYearTest javascript有什么问题?

问题描述

我期望的输出是,例如“1997 年不是闰年”,但我得到的是什么。我认为我的代码中的问题是:我不知道 和 之间的console.log区别return

有人可以指出我的代码中的错误以及正确的编码方式吗?

const year = prompt();
const msgYes = 'is a leap year';
const msgNo = 'is not a leap year';

if (year % 4 == 0){
    if (year % 100 == 0){
        if (year % 400 == 0){
            console.log(`${year}+ ${msgYes}`); // if /400 = 0
        } else{
            console.log(`${year}+ ${msgNo}`); // if /400 =/= 0 and /100 = 0
        }
    } else {
        console.log(`${year}+ ${msgYes}`); // if /100 =/= 0 and /4 = 0
    }
} else {
    console.log(`${year}+ ${msgNo}`); // if /4 =/= 0
}

标签: javascript

解决方案


您的代码有效,尽管它可以被整理很多。

const year = prompt();
let msg = 'is not a leap year';

if (year % 4 === 0 && (year % 100 !== 0 || year % 400 == 0))
  msg = 'is a leap year';

console.log(`${year} ${msg}`);

如果您在将其放入函数时遇到问题,请确保您return有所了解。


推荐阅读