A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

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
求诸位解答一下过程 怎么得出这样一个结果的

评分

参与人数 1技术分 +1 收起 理由
刘芮铭 + 1

查看全部评分

6 个回复

倒序浏览
打个酱油,抢个二楼,不解释
回复 使用道具 举报
你里面的循环条件是: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不成立时,在回外循环,以此类推。  所以打印结果为  你描述的那样。

评分

参与人数 1技术分 +1 收起 理由
刘芮铭 + 1

查看全部评分

回复 使用道具 举报
总之就是,从上到下,从左到右。
对于for就是进入循环体之后,再遇到内层for,符合内层循环条件,就进入内层循环体,完成内层指定次数的循环,
然后继续走到外层for循环体的 } ,继续外层的下一次循环。

评分

参与人数 1技术分 +1 收起 理由
刘芮铭 + 1

查看全部评分

回复 使用道具 举报
外循环 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不成立,外循环结束。程序结束。

评分

参与人数 1技术分 +1 收起 理由
刘芮铭 + 1

查看全部评分

回复 使用道具 举报
这是嵌套循环,外循环中的i作用范围是内循环和外循环,而内循环中的j的作用范围为内循环
每一次外循环,内循环都执行(i - 0)次数 ,因此,i为0,内循环条件不成立,i变为1内循环执行一次,打印i的值一次,然后外循环i为2,此时内循环要执行两次,然后外循环i为3,此时内循环要执行三次,i到4的时候,内循环要执行四次

评分

参与人数 1技术分 +1 收起 理由
刘芮铭 + 1

查看全部评分

回复 使用道具 举报

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逐次递增完成循环。
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马