问答详情
源自:4-10 编程练习

请看代码中注释处的疑问!关于 n=n++,n++,n=n+1的理解不明白

<script type="text/javascript">

var infos=[['小A','女','21','大一'],['小B','男','23','大三'],['小C','男','24','大四'],['小D','女','21','大一'],
           ['小E','女','22','大二'],['小F','男','21','大一'],['小G','女','22','大二'],['小H','女','20','大三'],
           ['小I','女','20','大一'],['小J','男','20','大三']];//第一步把之前的数据写成一个数组的形式,定义变量为 infos
document.write("第一次筛选"+"<br />");
var one=new Array();
var n=0;
for(var i=0;i<infos.length;i++)
{
    if(infos[i][3]=="大一")
    {
        document.write(infos[i]+"<br />");
        one[n]=infos[i];
        n++;//此处为什么n++或者n=n+1就好使,为什么不能直接写n=n++
    }
}
document.write("第二次筛选"+"<br />");
for(var j=0;j<one.length;j++)
{
    if(one[j][1]=="女")
    {
        document.write(one[j]+"<br />");
    }
}
</script>

提问者:大年糕 2017-02-17 10:29

个回答

  • 徐京乐
    2017-02-17 16:58:56
    已采纳

    举个例子,定义s=0,n=3.

    比如  s = n++; 就是先把n的值给s然后执行n++(就是n=n+1),所以运行结果是s=3,n=4;

    如果是s=++n;就是先执行n++,这时候n=4,再赋值给s,所以运行结果是s=4,n=4.

  • 徐京乐
    2017-02-17 17:00:26

    n++本身就属于一种简略写法,即n++  等同于 n=n+1;

  • 慕粉1938447112
    2017-02-17 11:14:58

    你如果写成n=++n,就对了。这是因为n++是先把n的值赋给等号左边,然后再自加,而++n是先n自加,再赋值。