1-11问题为什么这么写

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>


正在回答

登陆购买课程后可参与讨论,去登陆

3回答

http://img1.sycdn.imooc.com/climg//59ba5c97000143bd05240111.jpg

这里j< Month - 1减去1才能匹配到正确的月份,祝学习愉快!

  • 晓松aa 提问者 #1
    为什么不是j<=month呢
    2017-09-14 19:56:13
  • 晓松aa 提问者 #2
    sum += run[j];为什么不用argunments[j],他俩的作用一样吗
    2017-09-14 20:13:51
  • 晓松aa 提问者 #3
    还有一个问题,为什么怎么没有用到arguments. length呢,run[j]是不是也代表run里面的第i,个参数啊
    2017-09-14 22:09:54
Miss路 2017-09-14 16:23:12

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>

祝学习愉快!

  • 提问者 晓松aa #1
    for (var j = 0; j < Month - 1; j++)这是什么意思为什么j< Month - 1不应该是j<=Month
    2017-09-14 18:28:48
  • 提问者 晓松aa #2
    sum += run[j];为什么不用argunments[j],他俩的作用一样吗
    2017-09-14 18:41:51
  • 提问者 晓松aa #3
    run和ping里面的值为什么用中括号括起来
    2017-09-14 20:34:28
正在想名字呢 2017-09-14 16:11:25

老铁,不知道为什么这么写,那你为啥写呢~~~

  • 提问者 晓松aa #1
    我看的问答上边的
    2017-09-14 17:30:02
问题已解决,确定采纳
还有疑问,暂不采纳

恭喜解决一个难题,获得1积分~

来为老师/同学的回答评分吧

0 星
前端小白入门系列课程
  • 参与学习           人
  • 提交作业       11218    份
  • 解答问题       36713    个

从一个不会编程的小白到一个老司机是需要过程的,首先得入门,学习基础知识,然后才能进阶,最后再到精通,本专题是你走进前端世界的不二选择!

了解课程
请稍等 ...
意见反馈 帮助中心 APP下载
官方微信

在线咨询

领取优惠

免费试听

领取大纲

扫描二维码,添加
你的专属老师