1-11问题为什么这么写
为什么要这么写 while(Year<0||Year>2017)
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>homework</title>
</head>
<body>
<script>
var Year=parseInt(prompt("请输入您的出生年份"));
while(Year<0||Year>2017){
prompt("请输入您的出生年份");
Year=parseInt(prompt("请输入您的出生年份"));
}
var Month=parseInt(prompt("请输入您的出生月份"));
while(Month<0||Month>12){
prompt("请输入您的出生月份");
Month=parseInt(prompt("请输入您的出生月份"));
}
var Day=parseInt(prompt("请输入您的出生日期"));
while(Day<0||Day>31){
prompt("请输入您的出生日期");
Day=parseInt(prompt("请输入您的出生日期"));
}
var run=[31,29,31,30,31,30,31,31,30,31,30,31];
var ping=[31,28,31,30,31,30,31,31,30,31,30,31];
// 判断是不是闰年
var sum,j;
function runYear(){
if(Year%4==0&&Year%100!=0||Year%400==0){
var sum,j;
for(j=0,sum=0;j<Month;j++){
sum=sum+run[j]+Day;
}
}else{
for(j=0,sum=0;j<Month;j++){
sum=sum+ping[j]+Day;
}
}
document.write("您的生日在"+Year+"年是第"+(sum-31)+"天");
}
// 闰年二月29天
runYear();
</script>
</body>
</html>
正在回答
这里j< Month - 1减去1才能匹配到正确的月份,祝学习愉快!
while(Year<0||Year>2017) 写这句话是要做一下简单的验证,写个年份小于0的没有意义,现在是2017,不可能有2018年的生日。
并且下面的代码实现的也不对。需要修改一下:
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>homework</title>
</head>
<body>
<script>
var Year = parseInt(prompt("请输入您的出生年份"));
var Month = parseInt(prompt("请输入您的出生月份"));
var Day = parseInt(prompt("请输入您的出生日期"));
var run = [31, 29, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31];
var ping = [31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31];
// 判断是不是闰年
function runYear(Year, Month, Day) {
var sum = 0;
if (Year % 4 == 0 && Year % 100 != 0 || Year % 400 == 0) {
for (var j = 0; j < Month - 1; j++) {
sum += run[j];
}
} else {
for (var j = 0; j < Month - 1; j++) {
sum += ping[j];
}
}
document.write("您的生日在" + Year + "年是第" + (sum + Day) + "天");
}
// 闰年二月29天
runYear(Year, Month, Day);
</script>
</body>
</html>
祝学习愉快!
相似问题
登录后可查看更多问答,登录/注册
- 参与学习 人
- 提交作业 11218 份
- 解答问题 36713 个
从一个不会编程的小白到一个老司机是需要过程的,首先得入门,学习基础知识,然后才能进阶,最后再到精通,本专题是你走进前端世界的不二选择!
了解课程
恭喜解决一个难题,获得1积分~
来为老师/同学的回答评分吧
0 星