java初学者的小问题,高手请进

来源:百度知道 编辑:UC知道 时间:2024/06/03 20:01:50
public static void main(String[]args){
for (int m=3;m >0;m--) {
for (int i=1;i<m;i++) {
System.out.print(" ");
}System.out.print("*");
for (int j=0; j<=2*(3-m)-2;j++) {
System.out.print(" ");
}
if(m==3){
System.out.println();
}else
System.out.println("*");
}
for (int m =1; m >= 0; m--) {
for (int i = 2; i > m; i--) {
System.out.print(" ");
}System.out.print("*");
for (int j=4; j>2*(3-m)-1;j--) {
System.out.print(" ");
} if (m==0){
System.out.println();
} else
System.out.println("*");
}

这段打印空心菱形的代码,谁能给我解释下"for (int j=0; j<=2*(3-m)-2;j++) "这段的意思。。。

控制每行打印空格的 个数的

m的初值是3,for循环里的j的值就是2*(3-3)-2也就是-2 ,j的初值是0

0不小于-2所以循环继续执行打印一次空格,j自减一次,j=-1,还是不小于-2,继续循环,再打印一次空格,在循环,j继续减,j=-2这次j<=-2成立,循环结束,

所以第一行共打印2个空格,

依次类推,第二行……

for (int j=0; j<=2*(3-m)-2;j++)
可以看成 for (int j=0; j<=4;j++)
这个是for循环
把j=0带进那个 j<=4 J++ 是迭代
如果0取完 就是1 j<=2
懂嘛?