for循环的Var 声明变量,单独设置跟在括号里设置 咋效果不同呢?

来源:2-10 编程练习

慕UI9243256

2019-09-25 16:17:56


<!--     <script>

        var sum,i=1,j=1;

        for (i ; i < 10; i++) {

            for (j ; j <= i; j++) {

                sum = i * j;

                document.write(j + '*' + i + '=' + sum + '&nbsp;');

            } 

        }document.write("<br/>"); 

    </script> -->

为什么这样的变量声明,出来的结果为

1*1=1 2*2=4 3*3=9 4*4=16 5*5=25 6*6=36 7*7=49 8*8=64 9*9=81

而放在括号里的声明则可行

 <script>
    var sum;
    for(var i=1;i<10;i++){
        for(var j=1;j<=i;j++){
            sum=i*j;
            document.write(j+'*'+i+'='+sum+'&nbsp;');
        } document.write("<br/>");
    } 
    </script>

疑问:var 声明的位置不同,所表达的意思不同吗?还是跟变量函数有关?

写回答

1回答

好帮手慕糖

2019-09-25

同学你好,1、如下,第一种实现的方式,j在循环外面声明,那么当i等于2的时候,在执行里面的循环,j不会重新声明,也是从第一轮j++之后的值2,开始的。

http://img.mukewang.com/climg/5d8b2a4a09c759ac08330440.jpg

2、但是j在循环内声明的话,i=2,执行里面的循环的时候,j会重新声明,从1开始哦。所以这里j在循环中声明就可以了,i可以在外面。不过换行,还是需要在内层循环结束之后哦,例:

http://img.mukewang.com/climg/5d8b2b170968beb706400383.jpg

3、这里的执行过程为外层循环执行一次后 , 进入内层循环 ,当内层循环执行完所有循环时 ,跳出循环 , 然后外层再开始执行下一次循环 . 根据此执行顺序 , 结合九九乘法表 :

http://img.mukewang.com/climg/5d8b2c8609cce4aa02550038.jpg

例如当外层i=3时 , 执行内层循环 , 会把j<=i所有满足条件的执行完跳出循环(且j需要从1开始哦) , 九九乘法表开始执行下一次i=4的情况 ,也就是说当内层的循环结束后就要开始换行执行下次循环了 . 

希望解答了你的疑惑 , 望采纳 。

祝学习愉快!

0

0 学习 · 40143 问题

查看课程