首页 新闻 会员 周边

【初学问题】一段for循环的疑问?求解答

0
悬赏园豆:10 [已解决问题] 解决于 2014-12-09 20:25
1 public class Question{
    

2 for(int i=1;i<=5;i++){ 3 for(int j=1;j<=i;j++){ 4 System.out.print(i); 5 } 6 System.out.println(); 7 } 8 9 }

为什么第二个for循环中的 j 的值 在每次自增之又回到初始值

iwx的主页 iwx | 初学一级 | 园豆:193
提问于:2014-12-05 16:28
< >
分享
最佳答案
1

因为就是这么设计的。

收获园豆:3
爱编程的大叔 | 高人七级 |园豆:30839 | 2014-12-05 16:33

楼下的都讲得很赞,我也决定来一个高大上的解释。

因为这段代码中

for(int j=1;j<=i;j++){ 4 System.out.print(i); 5 }

j的生命周期在j的循环结束后已结束。

下一i的时候,又开始一个新的生命周期。

换成另外一种代码就是这样的

int j=1;

while(true)

{

   if(j>i){exit while;}

system.out.print(i);

  j+=1;

}

爱编程的大叔 | 园豆:30839 (高人七级) | 2014-12-05 16:44
其他回答(6)
1

因为当i+1之后,j是一个全新变量了。

收获园豆:1
幻天芒 | 园豆:37175 (高人七级) | 2014-12-05 16:33
1

每个外层循环j都从1开始

收获园豆:1
Halower | 园豆:1723 (小虾三级) | 2014-12-05 16:38
0

买本C程序设计,好好一行一行看

收获园豆:1
吴瑞祥 | 园豆:29449 (高人七级) | 2014-12-05 17:21
0

你最好,在vs里面单步调试看看!

收获园豆:1
Mr.Brian | 园豆:1518 (小虾三级) | 2014-12-05 17:28
0

楼主的第二个for循环:for(int j=1;j<=i;j++)这一句, 已经定义了int j=1了, 第一个for循环一遍后, 又执行了int j=1,j等于又是一个变量。 当然就是初始值了。

楼主应该弄清楚for循环是什么样的原理, 然后开调试, 一步一步走。 你就知道了。

for循环的三步走原理:

for循环(1参数初始化,2判断是否满足循环的条件,3循环一遍后更新循环变量)

{
  //代码
}

 

楼主加油吧。 

收获园豆:2
问天何必 | 园豆:3311 (老鸟四级) | 2014-12-05 17:49
0

130017551 到这群里里面升级吧

收获园豆:1
iisp | 园豆:81 (初学一级) | 2014-12-09 18:23
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册