这个i就是for里面的i,比如for里的i为3,执行发现相同了,执行i=i-1 注意这里的i = 4,i-1还是3

解决方案 »

  1.   

    如果i取3,没明白为什么i=i-1里后面的i会是4??
      

  2.   

    因为for(i=0;i<4;i++) 还执行了i++
      

  3.   

    还有一个小问题,按照小菜头的说法,那
    myarray[i]=num这里的数组第一个不就是myarray[1]了,而不是myarray[0]了????
      

  4.   

    i++是在最后一步执行的,刚才i =3;i-1=2;但是执行到最后还要做个i++;所以还是3;前面次序稍有出入..
      

  5.   

    <script language="javascript">function generatenum() //产生随机数
    {
    var i=parseInt(Math.random()*100);//1-10的随机数
    var j=parseInt(i/4);
    var k=i-j*4+1;
    return k;
    }function issame(array,num) //判断数组中是否有相同的数字
    {
    var i,res=false;
    for(i=0;i<array.length;i++)
    {
      if(array[i]==num)res=true; //如果相同返回true
    }
    return res;
    }
    </script>
    </HEAD><BODY><center><br><br><br><br>
    <script language="javascript">
    var myarray=new Array();for(i=0;i<4;i++)
    {
    num=generatenum();//产生随机数
    if(issame(myarray,num))i=i-1;
    else
    {
      myarray[i]=num;
      }
    }var s="";for(i=0;i<myarray.length;i++)//列出数组中的数字
    {
    s=s+myarray[i]+"<br>";
    }
    document.write(s);
    </script>
    </BODY>
    </HTML>请高手帮我注释一下,主要是
    for(i=0;i<4;i++)
    {
    num=generatenum();
    if(issame(myarray,num))i=i-1;
    else
    {
      myarray[i]=num;
      }
    }
      

  6.   


    else
    {
      myarray[i]=num;
      }这一步是在i++之前还是之后执行????
      

  7.   

    i++是在整个循环体的最后执行,else
    {
      myarray[i]=num;
      }在之前执行
      

  8.   

    抽牌算法|洗牌算法。以下代码,谨供参考:<html><head>
    <meta http-equiv="Content-Type" content="text/html; charset=gb2312">
    <title>JK:支持民族工业,尽量少买X货</title>
    </head><body>
    <pre>
    洗牌算法:
    部分代码来自:
    http://community.csdn.net/Expert/topic/3858/3858964.xml?temp=.5909693
    fason的回贴。</pre><script language="JavaScript">
    <!--function getRandomArray(m,n)   //得到m张牌里的n张牌 (m>=n>0)
    {
    if(n==null || n==m )
    return getRandomPlayCard(m);
    var array1=new Array(m);
    for(var i=0;i<m;i++)
    array1[i]=i;
    var m2=m-0.00001;
    for(var i=0;i<n;i++)
    {
    var rnd=Math.floor(Math.random()*m2);
    var swap=array1[i];array1[i]=array1[rnd];array1[rnd]=swap;
    }
    return(array1.slice(0,n));
    }
    function getRandomPlayCard(m) //洗牌
    {
    var array1=new Array(m);
    for(var i=0;i<m;i++){
    var rnd=Math.floor(Math.random()*(i+0.99999))
    array1[i]=array1[rnd];
    array1[rnd]=i;
    }
    return array1;
    }
    document.write(getRandomPlayCard(100)+"<br><br>"+getRandomArray(100,5));--> 
    </script></body>
    </html>