public class For
{
public static void main(String agrs[])
{
for(int i=1;i<=9;i++)
{
for(int j=1;j<=i;j++)
{
System.out.printf("%d*%d=%2d\t",i,j,i*j);
}
System.out.println();
}
}
}
请问内外层2个循环的变量i 和 j的自增,是j在里面顺序循环1次下来就自增, 还是说要等到外层循环转一圈回来又到 for(int j=1;j<=i;j++)这条语句的时候j再自增。
求思路清晰的前辈 清晰的说明一下2个或者多个for循环里面的变量自增的顺序或者有什么规律。
{
public static void main(String agrs[])
{
for(int i=1;i<=9;i++)
{
for(int j=1;j<=i;j++)
{
System.out.printf("%d*%d=%2d\t",i,j,i*j);
}
System.out.println();
}
}
}
请问内外层2个循环的变量i 和 j的自增,是j在里面顺序循环1次下来就自增, 还是说要等到外层循环转一圈回来又到 for(int j=1;j<=i;j++)这条语句的时候j再自增。
求思路清晰的前辈 清晰的说明一下2个或者多个for循环里面的变量自增的顺序或者有什么规律。
(i=1,j=1)
(i=2,j=1) (i=2,j=2)
(i=3,j=1) (i=3,j=2) (i=3,j=3)
(i=4,j=1) (i=4,j=2) (i=4,j=3) (i=4,j=4)
...
...
也就是说,外层For要等里层For循环结束后才会再自增
并且外层每次自增后,里层的j又会初始化为1,然后在进行里层循环
j == 1i == 2
j == 1 j == 2......i == 9
j == 1 j == 2 ...... j == 9
外层for循环 i赋值为1,再判断i<=9,若条件成立,执行for中语句。进入内层for循环,j赋值为1,再判断j<=i,若条件成立,执行内for中语句,内for中执行完毕,再执行j++;再判断j<=i,若条件成立,执行内for中语句,内for中执行完毕,再执行j++;依次完成内层for循环。内层执行完后,执行i++,再判断i<=9,若条件成立,执行for中语句。在判断时,若条件不成立,退出循环,也不执行 ++ 操作。
总结:从外往内,外一内N,且N随外i的递增而递增.
1*1= 1
2*1= 2 2*2= 4
3*1= 3 3*2= 6 3*3= 9
4*1= 4 4*2= 8 4*3=12 4*4=16
5*1= 5 5*2=10 5*3=15 5*4=20 5*5=25
6*1= 6 6*2=12 6*3=18 6*4=24 6*5=30 6*6=36
7*1= 7 7*2=14 7*3=21 7*4=28 7*5=35 7*6=42 7*7=49
8*1= 8 8*2=16 8*3=24 8*4=32 8*5=40 8*6=48 8*7=56 8*8=64
9*1= 9 9*2=18 9*3=27 9*4=36 9*5=45 9*6=54 9*7=63 9*8=72 9*9=81
当 i = 1时;j = 1; i * j =1;
当 i= 2 时 j =1,j = 2; 2*1=2,2*2=4;
....
{
for(int j=1;j<=i;j++)
{
System.out.printf("%d*%d=%2d\t",i,j,i*j);
}
System.out.println();
}
}
}
循环的判断,先执行i=1,i<9然后就进入了for的大括号里面的内容,只有第二个for循环的条件一直满足,就一直执行下去,当j>i,这个内部循环就跳出,执行i=2,然后内部循环又一直执行。