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 + ' ');
}
}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+' '); } document.write("<br/>"); } </script>
疑问:var 声明的位置不同,所表达的意思不同吗?还是跟变量函数有关?
1回答
好帮手慕糖
2019-09-25
同学你好,1、如下,第一种实现的方式,j在循环外面声明,那么当i等于2的时候,在执行里面的循环,j不会重新声明,也是从第一轮j++之后的值2,开始的。
2、但是j在循环内声明的话,i=2,执行里面的循环的时候,j会重新声明,从1开始哦。所以这里j在循环中声明就可以了,i可以在外面。不过换行,还是需要在内层循环结束之后哦,例:
3、这里的执行过程为外层循环执行一次后 , 进入内层循环 ,当内层循环执行完所有循环时 ,跳出循环 , 然后外层再开始执行下一次循环 . 根据此执行顺序 , 结合九九乘法表 :
例如当外层i=3时 , 执行内层循环 , 会把j<=i所有满足条件的执行完跳出循环(且j需要从1开始哦) , 九九乘法表开始执行下一次i=4的情况 ,也就是说当内层的循环结束后就要开始换行执行下次循环了 .
希望解答了你的疑惑 , 望采纳 。
祝学习愉快!
相似问题
回答 1
回答 2