黑马程序员技术交流社区

标题: 双重for循环,执行顺序结果谁可以解答一下 [打印本页]

作者: 占琳    时间: 2012-10-21 14:49
标题: 双重for循环,执行顺序结果谁可以解答一下
class Test
{
        public static void main(String[] args)
        {   
                  for(int i=0;i<5;i++)
                {
                  for(int j=0;j<i;j++){
                          System.out.println(i);
                  }
                }
        }
}
输出结果是:
1
2
2
3
3
3
4
4
4
4
求诸位解答一下过程 怎么得出这样一个结果的

作者: 陈琦    时间: 2012-10-21 15:16
打个酱油,抢个二楼,不解释
作者: 给生活加点料    时间: 2012-10-21 15:24
你里面的循环条件是:for(int j=0;j<i;j++)    j<i;   打印的是i.   你注意到没有。  外循环i=0时,里循环   0<0  ,不成立,所以不打印   i.  
调到外循环 i++;   这时i=1,里循环  0<1,成立,所以打印结果为 1.j在++,1<1,不成立。在回到i++,加完是2,再进里循环,0<2;1<2;都满足条件,所以打印 2.
当2<2不成立时,在回外循环,以此类推。  所以打印结果为  你描述的那样。


作者: 刘伟平    时间: 2012-10-21 16:12
总之就是,从上到下,从左到右。
对于for就是进入循环体之后,再遇到内层for,符合内层循环条件,就进入内层循环体,完成内层指定次数的循环,
然后继续走到外层for循环体的 } ,继续外层的下一次循环。
作者: 黑马李超    时间: 2012-10-21 16:22
外循环 for(int i=0;i<5;i++)首先i=o,i<5成立,执行for(int j=0;j<i;j++){System.out.println(i);},此时i=o,j<i不成立,跳出内循环执行i++。继续i=1,i<5,执行内循环,j=o,j<1成立,执行打印i,输出1;然后j++,1<1不成立,跳出执行i++.此时i=2,i<5,执行内循环,j=o,j<2,成立,执行打印i,输出2;然后j++,j=1,j<2成立,再执行打印i,输出2;然后j++,j=2,2<2不成立,跳出执行i++。以此类推i=3时,输出三个3,i=4时,输出四个4,i=5时,i<5不成立,外循环结束。程序结束。
作者: 梁枝武    时间: 2012-10-21 17:02
这是嵌套循环,外循环中的i作用范围是内循环和外循环,而内循环中的j的作用范围为内循环
每一次外循环,内循环都执行(i - 0)次数 ,因此,i为0,内循环条件不成立,i变为1内循环执行一次,打印i的值一次,然后外循环i为2,此时内循环要执行两次,然后外循环i为3,此时内循环要执行三次,i到4的时候,内循环要执行四次
作者: 任雷彬    时间: 2012-10-22 00:23

i=0    j<0   不打印
i=1    j<1  j=0   1 打印一次
i=2    j<2  j=0,1  2,2打印两次
i=3    j<3  j=0,1,2   3,3,3,打印三次
i=4    j<4  j=0,1,2,3   4,4,4,4打印四次
外循环控制每一次打印数值,内循环控制数值打印的次数。i  , j逐次递增完成循环。





欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2