在加入循环后,本应出现的弹窗就消失了

在加入循环后,本应出现的弹窗就消失了

<!DOCTYPE html>
<html>
<head>
    <meta charset="utf-8">	
	
	
</head>
<body>
<script type="text/javascript">
	var year=prompt("请输入您的出生年份"),month=prompt("请输入您的出生月份"),date=prompt("请输入您的出生日期");
	function s(d,h,y){
    while(h<=7){for (var i = 1; i < h; i+=2) {d+=31};for (var j = 1; j < h&& j % 2==0; j+=1) {d+=30}};
    while(h>7){for (var i = 8; i < h; i+=2) {d+=31};for (var j = 8; j < h&& j % 2==; j+=1) {d+=30}};
    while(h>7){d+=244};
    if(year%4==1){d-=2}else{d-=1};return d;};
    var p=s(date,month,year);
    document.write("您的生日在"+year+"年是第"+p+"天");
</script>
</body>
</html>


正在回答

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

2回答

同学你好,如下,==后面这个后面没有东西哦。

http://img1.sycdn.imooc.com//climg/5bfb8b460001683307370071.jpg

希望能帮助到你,欢迎采纳。

祝学习愉快!

  • 慕用0863198 提问者 #1
    额,老师,这个小问题改过之后,页面上还是不出现文字,你的回答没有解决我实际的问题啊
    2018-11-26 20:40:44
好帮手慕糖 2018-11-27 10:27:52

同学你好,这个问题修改之后,弹窗是可以出现的,但是确实最终的文字没有出现,

http://img1.sycdn.imooc.com//climg/5bfca9db00012b3104990055.jpg

在你的上一个问题中,提问了类似的问题,老师为你指出了代码中的错误,并指出了这个思路是有些绕,并且给出了一个比较合理的高效的实现思路,您也采纳了,同学可可以再看一下, http://class.imooc.com/course/qadetail/79291    ,如果您没有理解,可以先不采纳,继续提问,老师会继续为你解答。

对于这个代码中的问题,我再详细的为你解释一下代码中的问题,以及需要如何修改才能实现,是建立在你的实现方式的基础上进行修改的:

是由于最后死循环了,因为使用了while循环,但是这个却没有跳出这个循环的操作,所以可以把循环换为if语句,

http://img1.sycdn.imooc.com//climg/5bfca2d80001ce9903290472.jpg

这样修改是可以运行的,但是最终输出的结果是不对的;原因:

(1)使用prompt输入的年月日是字符串,会导致字符串拼接,可以使用parseInt转换下,例:

http://img1.sycdn.imooc.com//climg/5bfca30d0001445307060121.jpg

(2)如下,不太理解这个的循环的作用是什么?是为了添加4,6,等月份中的30天吗?这样是不行的哦,假设,要添加4月份的30天的话,j从1开始,j%2==0,j等于1的时候,这个条件不满足,循环没有进入,后面的30天也是无法添加的。

http://img1.sycdn.imooc.com//climg/5bfca34d00010d5d07100105.jpg

    ①小于七月这里,添加30天的,这里可以从2月开始添加,每个后面也是加2

    http://img1.sycdn.imooc.com//climg/5bfca67900015cd707220140.jpg

    ②大于七月这里,可以从9月开始

    http://img1.sycdn.imooc.com//climg/5bfca7110001532408290157.jpg

(3)判断闰年不严谨,判断年份是否是闰年,需满足下列条件之一(两个条件同时存在,一个为真即可):

        ① 年份能整除4但是不能整除100

        ② 年份能整除400

(4)大于7月的话,需要添加加上前七个月的天数,2月按照30天计算,所以应该是214天;

http://img1.sycdn.imooc.com//climg/5bfca5570001cf3402890133.jpg

不过以上的实现方式不是最好的,老师给你一个相对比较高效的实现方式:可以使用arguments参数来实现,可参考如下思路:

(1)因为使用prompt输入的是字符串,建议:使用parseInt转化下。

(2)定义一个变量,用来接收总的天数。

(3)先安装平年进行计算,若是闰年且月份大于2月,则中天数加1,

(4)判断年份是否是闰年,需满足下列条件之一(两个条件同时存在,一个为真即可):

        ① 年份能整除4但是不能整除100

        ② 年份能整除400

(5)最后加上输入的天数。可参考如下:

http://img1.sycdn.imooc.com//climg/5bfcab7500014edb08450523.jpg

希望能帮助到你,欢迎采纳。

祝学习愉快!

问题已解决,确定采纳
还有疑问,暂不采纳

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

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

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

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

帮助反馈 APP下载

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

公众号

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

在线咨询

领取优惠

免费试听

领取大纲

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