未实现功能,麻烦老师看下

未实现功能,麻烦老师看下

麻烦老师说下思路,如下1和2分别用while和for实现的,但是都有问题,麻烦老师改下

1.var s= new Array(),a,n=0;

      while(a!=="退出"){

        var a=prompt("请输入工资")} 

    s[n]=a;

    n++;

       document.write(s[n]);

2. for(n=0;n<s.length;n++){

            n=prompt("请输入工资");

            s[n]=n;

            if (n="退出"){

                break;

       //     }


正在回答

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

1回答

你好,下面是两种修改方式:

1、使用while循环,将每一次弹框的内容放进数组中,n作为索引,修改方式:

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

最后需要将数组中的长度减去1,因为会把‘退出’也放进数组中。

开始a变量是在外面定义的,a值是undefined,与退出不相等,弹框输入内容,将内容放近数组中,然后再判断弹框输入的内容是否与退出相等,这样就造成了先把弹框的内容放进数组中,然后再判断是否与‘退出’相等,所以数组的长度需要减去1,最后输出整个数组即可。

2、for循环修改方式:

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

(1)for循环中的条件需要改为<=,因为开始数组是没有值的,也就是长度为0,0<0不成立,也就不会进入循环,改为<=就可以。

(2)建议弹框接收的变量不要与for循环中的变量相同,可能会解析错误。

(3)判断是否与退出相等,应该是两个等号,一个等号是赋值。

(3)把判断条件放在将值放进数组的前面,这样如果弹框值是退出的话,就不用放进数组中了。


这两种方式可以测试下,祝学习愉快!

欢迎采纳~

  • Leeluo 提问者 #1
    判断是否退出,如果写一个等号就不会重复弹出弹框a,为什么?var s=new Array(),i,a; for(i=0;i<=s.length;i++){ a=prompt("请输入工资") if (a="退出"){ break; } s[i]=a; } document.write(s)
    2019-04-01 13:31:45
  • 好帮手慕星星 回复 提问者 Leeluo #2
    你好,因为一个等号是赋值,直接把a赋值为‘退出’,就执行break,退出循环,所以就不会继续弹框了。两个等号(只判断数值是否相等),三个等号(判断类型和数值是否相等)才是判断。
    2019-04-01 14:05:15
问题已解决,确定采纳
还有疑问,暂不采纳

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

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

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

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

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

在线咨询

领取优惠

免费试听

领取大纲

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