public class Pattern {
public static void main(String[] args) {
int a;
String b = "*";
int d = 0;
for (a = 0; a < 10; a++) {
for (int c = 10; c > d; c--) {
System.out.print(b);
}
System.out.println();
d = d - 2;
}
}
}
该程序打印出一个递增的星形图案。
**********
************
**************
****************
******************
********************
**********************
************************
**************************
****************************
它工作正常,但我认为这将打印一个递减的星形图案。任何人都可以解释这个程序是如何工作的?我对Java比较陌生。
答案 0 :(得分:3)
你在这里做了一些有趣的事情。
在外部for循环的第一次交互中,内部循环以值开始:c = 10,d = 0,下一次迭代:c = 10,d = -2,next ... c = 10,d = -4等等。首先它将打印10颗星,然后是12颗星,然后是14颗星......
希望这有帮助。
变化
for (int c = 10; c > d; c--)
到
for (int c = 10; c > a; c--)
看看会发生什么。
答案 1 :(得分:0)
外部for循环
(a = 0; a < 10; a++) {...}
基本上表示从0到9开始打印的行数。对于每一行或a,d减去2。
a = 0, c goes from 10 to 1 (d = 0) printing 10 '*'s
a = 1, c goes from 10 to -1 (d = -2) printing 12 '*'s
a = 2, c goes from 10 to -3 (d = -4) printing 14 '*'s and so on
对于每一行,d下降2,导致星数上升2。