Javascript新手:if语句
我正在通过编写一个小程序来练习一些JS,该程序会提示用户输入一个日期,以确定该日期是否为闰年 我使用if语句和Number.isInteger(userInput)来确定它们的输入是否有效 我的问题是,我可以让大多数日期工作,但由于规则适用于闰年,可以除以100的年份也必须能够除以400,以便将该年确认为闰年 按照我目前的代码,每年被4整除都是有效的一年,我很困惑Javascript新手:if语句,javascript,if-statement,Javascript,If Statement,我正在通过编写一个小程序来练习一些JS,该程序会提示用户输入一个日期,以确定该日期是否为闰年 我使用if语句和Number.isInteger(userInput)来确定它们的输入是否有效 我的问题是,我可以让大多数日期工作,但由于规则适用于闰年,可以除以100的年份也必须能够除以400,以便将该年确认为闰年 按照我目前的代码,每年被4整除都是有效的一年,我很困惑 <p id="text"></p> <button onclick="leapYear()"
<p id="text"></p>
<button onclick="leapYear()">Check for leap year</button>
<script>
function leapYear() {
var year = prompt("Please enter a valid year");
year = parseInt(year);
if (year != "null") {
if (Number.isInteger(year) === true) {
if (Number.isInteger(year/400) === true && Number.isInteger(year/100) === true) {
document.getElementById("text").innerHTML = year + " is a leap year!";
} else if (Number.isInteger(year/4) === true) {
document.getElementById("text").innerHTML = year + " is a leap year!";
} else {
document.getElementById("text").innerHTML = year + " is not a leap year";
}
} else {
document.getElementById("text").innerHTML = "Please enter a valid year";
}
}
}
</script>
</body>
检查闰年
功能年(){
var year=提示(“请输入有效年份”);
年=parseInt(年);
如果(年份!=“空”){
if(数字isInteger(年份)==真){
if(Number.isInteger(年份/400)==true&&Number.isInteger(年份/100)==true){
document.getElementById(“text”).innerHTML=year+“是闰年!”;
}else if(数字isInteger(年份/4)==真){
document.getElementById(“text”).innerHTML=year+“是闰年!”;
}否则{
document.getElementById(“text”).innerHTML=year+“不是闰年”;
}
}否则{
document.getElementById(“text”).innerHTML=“请输入有效年份”;
}
}
}
如果一直都是这样,我就错了……不过还是谢谢你的阅读
<body>
<p id="text"></p>
<button onclick="leapYear()">Check for leap year</button>
<script>
function leapYear() {
var year = prompt("Please enter a valid year");
year = parseInt(year);
if (year != "null") {
if (Number.isInteger(year) === true) {
if (Number.isInteger(year/400) === true && Number.isInteger(year/100) === true) {
document.getElementById("text").innerHTML = year + " is a leap year!";
} else if (Number.isInteger(year/400) !== true && Number.isInteger(year/100) === true) {
document.getElementById("text").innerHTML = year + " is not a leap year";
} else if (Number.isInteger(year/4) === true) {
document.getElementById("text").innerHTML = year + " is a leap year!";
}
else {
document.getElementById("text").innerHTML = year + " is not a leap year";
}
} else {
document.getElementById("text").innerHTML = "Please enter a valid year";
}
}
}
</script>
</body>
检查闰年
功能年(){
var year=提示(“请输入有效年份”);
年=parseInt(年);
如果(年份!=“空”){
if(数字isInteger(年份)==真){
if(Number.isInteger(年份/400)==true&&Number.isInteger(年份/100)==true){
document.getElementById(“text”).innerHTML=year+“是闰年!”;
}else if(Number.isInteger(year/400)!==true&&Number.isInteger(year/100)==true){
document.getElementById(“text”).innerHTML=year+“不是闰年”;
}else if(数字isInteger(年份/4)==真){
document.getElementById(“text”).innerHTML=year+“是闰年!”;
}
否则{
document.getElementById(“text”).innerHTML=year+“不是闰年”;
}
}否则{
document.getElementById(“text”).innerHTML=“请输入有效年份”;
}
}
}
我知道这可能是一种非常低效的解决问题的方法,但我想知道为什么我的if语句在300可能作为闰年过去的情况下不起作用。我也愿意接受不同意见的建议<代码>否则如果(Number.isInteger(year/4)==true)。。。什么让你难堪?因为如果你的算法是反向的,你就错了。