为什么我把条件改为11,页面就崩溃

来源:7-16 随机数 random()

慕尼黑1589570

2017-04-24 16:27

我把while条件改为小于11,下面的也改为11,结果页面崩溃为什么

写回答 关注

3回答

  • gary_gary
    2017-07-12 17:57:21

    while(myarr.length<=10)

    {

        num=Math.round(Math.random()*10);

        for(i=0;i<10;i++)

       {

           if(num==myarr[i])  //myarry里面是否存在这个数,如果存在则跳过for循环,重新生成一个随机数

           {break;}

           if(i==myarr.length-1) //判断是否是myarr数组中的最后一个数,且myarr中不存在这个数,     

           {                                   

               myarr[i+1]=num;       //便在myarr中存放这个数

               break;

           }

       }

    }

    你通过上面的while已经将0-10的整数放入myarr里面了,

    当你改成while(myarr.length<=11)时就变成了死循环,因为myarr里面的0-10只能存放唯一 一次,而myarr.length永远定格在11这个值,而且永远满足while的循环条件,再也不能插入任何值。


  • 吱吱叫的老鼠
    2017-05-29 13:35:55

    你第7行代码,var myarr=new Array(0);,声明的数组myarr含有0个元素,系统没有为它分配空间,后面你一直往里面放数据,肯定结果不对的啊;还有你的第15行,逻辑好乱  能不能问一下你是要实现什么效果呢

  • supger
    2017-04-24 20:14:00

    你可以测试一下,上面的改为11后,实际有多少个元素。

    下面的索引应该是超限了。


JavaScript进阶篇

本课程从如何插入JS代码开始,带您进入网页动态交互世界

468194 学习 · 21891 问题

查看课程

相似问题