自学java的问题。很简单,怎么理解?

怎么理解:

public class TestA {
public static void main(String[] args){
for(int i = 1; i < 5; i++){
int j = 0;
while(j < i){
System.out.print(j + " ");
j++;
}
}
}
}
输出
0 0 1 0 1 2 0 1 2 3

0 / 0 1 / 0 1 2 / 0 1 2 3 for的最大值是5.值只会打印四次。

for(int i = 1; i < 5; i++) int i =0;//声明变量,i < 5; //条件。 i++ ;//循环一次累加一次值。只要i++出来的值满足 i < 5. 就执行这个for()。知道最好i++ = 6的时候,6 < 5不满足条件,跳出循环。

for(int i = 1; i < 5; i++)
① ② ③

它这里就是两层循环嵌套,两层循环的话,先进入第一层循环for(), 再进入第二层循环while(),知道while()循环完,在回到for()。当for()循环结束为止。

具体流程:
当i=1的时候,=> i < 5条件满足,(下一步)=> j = 0. =>(遇到循环while). 条件 j < i.(0<1) 条件满足,打印J的值:= 0。j++ 同等于j = j +1 ; 所以j的值 为 j = 1 + 0 = 1; 在进入while()条件比较。 j < i (1 < 1),发现条件不满足,然后跳出while()循环,进入到for(),的下一步 i ++ 、i ++ 同等于 i = 1 + 1 = 2;
2 <5 、满足条件。J= 0, 这个时候的 i 因为累加了一次,就变成了2. 所以while(j < i) 同等于(j < 2);
这个时候因为j的初始值是0,打印出来的值 第一次继续是 0,j++之后,j =1 ,还是 1 <2 。打印出来的J的值就变成1. 所以这一次的值就变成了 0 和1. ====> 一次类推。这里的执行顺序是从上往下。

while(j < i){ // ① 第一次先判断条件 ,满足条件进入②。不满足跳出while()进入到for()循环
System.out.print(j + " "); // ② 打印j的值。初始值0、下一步进入③
j++;     ③ j++ => j = j ++ = 1; 继续执行第一步 ① }
}
温馨提示:答案为网友推荐,仅供参考
第1个回答  2014-08-04

两层循环。输出结果分开看0     0 1      0 1 2       0 1 2 3。for循环共4次这个懂吧?while循环次数随着i的增加而增加。

public static void main(String[] args){
  for(int i = 1; i < 5; i++){  //i初值为1  每循环一次i值+1   i<5也就是i等于4时停止。
   int j = 0;//每次for循环开始都把j值设为0.
   while(j < i){//while循环为内循环。初值为0,当j<i时停止,也就是说while循环的次数等于i的值。
    System.out.print(j + " ");//输出j
    j++;//每次内循环j值加1.
   }
  }
 }

第2个回答  2014-08-04
外层是个for循环 内层是个while 循环
第3个回答  2014-08-04
for循环里边套while循环。一次for循环j=0开始.每次while循环 j 加1,直到 j 不小于 i 后,while循环结束,for循环结束,开始下一次循环。可以设断点用debug跟一下看看。
第4个回答  2014-08-04
你要知道for循环的运行流程。i=1,问你i<5吗,是,执行下面的。同理,知道while的运行流程。j<i吗。是,执行下面。最后,i++,就是i=i+1,变成2,然后i<5吗,ok
相似回答