判断出生月份问题

判断出生月份问题

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Document</title>
</head>
<body>
<script type="text/javascript">
//声明年函数
function year(){
while(true){
var year=prompt("请输入您的出生年份");
if(isNaN(year)){
alert("请输入数字");
}else{
if (year.length!=4){
alert("请输入4位数字");
}else{
return parseInt(year);
}
}
}
}
year();
//声明月份
function month(){
while(true){
var month=prompt("请输入您的出生月份");
if (isNaN(month)){
alert("请输入数字");
}else{
if(month<1 || month>12){
alert("请输入1-12以内的数字")
}else{
return parseInt(month);
}
}
}
}
month();
//声明日
function date(){
while(true){
var date=prompt("请输入您的出生日")
if(isNaN(date)){
alert("请输入数字");
}else{
if(date<1 || date >31){
alert("请输入1—30以内的数字")
}else{
return parseInt(date);
}
}
}
}
date();
//判断闰年
function runNian(){
var runNian=(year%4==0 && year%100!=0) || year%400==0;
}
runNian();
//判断闰年,计算输入月份之前的天数
  function months(){
  var sum=0;
for(var i=0;i<month-1; i++)
  {sum+=arguments[i];}
if(runNian && month>2){
sum+=date+1;
}else{
sum+=date;
}
return sum;
  }
months(31,28,31,30,31,30,31,31,30,31,30,31);
document.write("您的生日是在"+parseInt(year)+"年是第"+sum+"天");
</script>
</body>
</html>

我已经return sum为何还不能识别sum??

正在回答

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

1回答

你好,主要问题是,在 函数内定义的变量是局部变量,同时 return返回后,要有接受它的变量。建议将主要变量改成全局,同时调用函数有接受变量。参考如下:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
<!DOCTYPE html>
<html>
<head>
    <meta charset="UTF-8">
    <title>Document</title>
</head>
<body>
    <script type="text/javascript">
    var year,month,date,sum,runNian;
    //声明年函数
    function year() {
        while (true) {
            year = prompt("请输入您的出生年份");
            if (isNaN(year)) {
                alert("请输入数字");
            } else {
                if (year.length != 4) {
                    alert("请输入4位数字");
                } else {
                    return parseInt(year);
                }
            }
        }
    }
   year=year();
    //声明月份
    function month() {
        while (true) {
            month = prompt("请输入您的出生月份");
            if (isNaN(month)) {
                alert("请输入数字");
            } else {
                if (month < 1 || month > 12) {
                    alert("请输入1-12以内的数字")
                } else {
                    return parseInt(month);
                }
            }
        }
    }
    month=month();
    //声明日
    function date() {
        while (true) {
            var date = prompt("请输入您的出生日")
            if (isNaN(date)) {
                alert("请输入数字");
            } else {
                if (date < 1 || date > 31) {
                    alert("请输入1—30以内的数字")
                } else {
                    return parseInt(date);
                }
            }
        }
    }
    date=date();
    //判断闰年
    function runNian() {
        runNian = (year % 4 == 0 && year % 100 != 0) || year % 400 == 0;
    }
    runNian();
    //判断闰年,计算输入月份之前的天数
    function months() {
        sum = 0;
        for (var i = 0; i < month - 1; i++) {
            sum += arguments[i];
        }
        if (runNian && month > 2) {
            sum += date + 1;
        } else {
            sum += date;
        }
        return sum;
    }
    sum=months(31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31);
    document.write("您的生日是在" + parseInt(year) + "年是第" + sum + "天");
    </script>
</body>
</html>

希望对你有帮助,祝学习愉快,欢迎采纳。

  • OlafChou 提问者 #1
    老师我发现你sum没有定义变量,是不是缺少了var
    2017-06-20 20:36:01
  • OlafChou 提问者 #2
    非常感谢!
    2017-06-20 20:44:24
  • OlafChou 提问者 #3
    我是发现你最上面给sum赋值了var,但是下面我看到你又赋值了var sum=months
    2017-06-20 20:51:10
问题已解决,确定采纳
还有疑问,暂不采纳

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

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

0 星
请稍等 ...
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号

在线咨询

领取优惠

免费试听

领取大纲

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