首页 > 其他 > 详细

for 嵌套

时间:2015-01-22 02:16:20      阅读:239      评论:0      收藏:0      [点我收藏+]

?

? ? ? ?最近刚学习js,遇到了 for 循环嵌套的问题,经过多加练习终于弄懂了,在此和大家分享一下,但在学习 for 的嵌套及其输出前,我们先学习一下 for 循环的运行规则吧。

?

?1. for循环的运行规则:

?1.1 规则的解释

for (1初始化表达式;2条件表达式;3更新表达式)
{
       4循环体函
}

?执行顺序:1-2-4-3,1-2-4-3,...

1.2 规则的解释?? ? ? ? ??

for (1初始化表达式;2条件表达式;3更新表达式)
{
     4循环体函数
} 

? ??1.在for循环的第一个表达式中对循环变量‘i‘进行初始化;

? ? ? 2.在第二个表达式中判断循环变量‘i‘的值是否符合循环条件;

? ? ? 3.如果不符合条件,则循环结束;

? ? ? 4.如果符合条件,首先去执行for循环中的代码块,然后在第三个表达式中对循环变量进行更新。继续下一轮循环。?? ? ??

function score( )
{ 
      for(i=0;i<5;i++)
      {
              console,log(i);
       }    
}
?上述例子的输出结果为:0 1 2 3 4 。

?

? 2. 本篇文章主要讲述的是对 js 中 for 的嵌套及其输出的分析

?

2.1? 嵌套的分析?

1号程序
function score()
{
     for(i=0;i<5;i++)
    {
          for(j=0;j<5;j++)
         {
          console.log(i + ‘ ‘);
         }
        console.log(‘\n‘);
    }
}

0 0 0 0 0
1 1 1 1 1 
2 2 2 2 2 
3 3 3 3 3
4 4 4 4 4  

2号程序

function score( )
{
     for(i=0;i<5;i++)
    {
          for(j=0;j<i;j++)
         {
               console.log(i + ‘ ‘);
         }
        console.log(‘\n‘);
     }
}

1
2 2
3 3 3
4 4 4 4

?

?

? 通过对比1号和2号程序,其区别是 j 的取值范围,即:j<5 与 j<i。

?

?? 当?j<5 时:

? ? ? ? ?执行 i=0,满足 i<5 后,for(j=0;j<5;j++) 中的 j 会执行 5 次,

? ?因为 ? j=0,满足 j<i, 即 0<5。

? ? ? ? ?执行 i=1,满足 i<5 后,for(j=0;j<5;j++) 中的 j 会执行 5 次,

? ?因为 j=0,满足 j<i, 即 0<5。

? ? ? ? ?执行 i=2,满足 i<5 后,for(j=0;j<5;j++) 中的 j 会执行 5 次,

? ?因为 j=0,满足 j<i, 即 0<5。

? ? ? ? ?以此类推。

?? 当 j<i 时:

? ? ? ? ?执行 i=0,满足 i<5 后,for(j=0;j<i;j++) 中的 j 不会执行循环,

? ?因为 j=0,并不满足 j<i,即 0<0;

? ? ? ? ?执行 i=1,满足 i<5 后,for(j=0;j<i;j++) 中的 j 会执行 1 次,

? ?因为 j=0,满足 j<i, 即 0<1;

? ? ? ???执行 i=2,满足 i<5 后,for(j=0;j<i;j++) 中的 j 会执行 2 次,

? ? 因为 j=0,满足 j<i, 即 0<2;

? ? ? ? ?执行 i=3,满足 i<5 后,for(j=0;j<i;j++) 中的 j 会执行 3 次,

? ? 因为 j=0,满足 j<i, 即 0<3;

? ? ? ???执行 i=4,满足 i<5 后,for(j=0;j<i;j++) 中的 j 会执行 4 次,

? ? 因为 j=0,满足 j<i, 即 0<4。

?

? 2.2? 输出的分析

function score()
{
     for(i=0;i<5;i++)
    {
          for(j=0;j<i;j++)
         {                                                 无
                                                           1 
                console.log(i + ‘ ‘); 1号位置 //输出结果: 2 2
                                                           3 3 3
                                                           4 4 4 4
          }                                                                                    
          console.log(i + ‘ ‘); 2号位置 //输出结果:0 1 2 3 4 
     }
      console.log(i + ‘ ‘); 3号位置 //输出结果:         5   
}

??1号位置 ,输出结果的原因:输出受到 i,j 的制约。

? ?2号位置 ,输出结果的原因:输出只受到 i 的制约。

? ?3号位置 ,输出结果的原因:输出不受 j 的制约,当 i 等于 5 时,跳出 for 循环,执行输出,即:i = 5。

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

for 嵌套

原文:http://dingliang-321.iteye.com/blog/2177859

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!