- 要点:
- 在使用二重循环打印图形时,外层循环控制总循环次数(图形行数),内层循环控制输出(图案每行内容)。
- 在观察较复杂图形时,尽量将其看成多个图形的组合。
- 练习:
-
等腰三角形
- 目标图形:行数为5的等腰三角形
- 需求分析:图形由从随行数依次减少1的空白倒三角和随行数依次增加2的*三角组成
- 代码实现:
for(i = 1;i <= 5;i++){ for(int j = 0;j < 6-i;j++){ System.out.print(" "); } for(int j =1;j <= 2 * j - 1;j++){ System.out.print("*"); } }
- 运行结果
-
空心等腰三角形
- 目标图形:行数为5的空心等腰三角形
- 需求分析:图形由5行随行数依次减少1的空白,第一行和最后一行满输出的*和每次j循环输出的第一个和最后一个*组成
- 代码实现:
for(int i = 1;i <= 5; i++){
for(int j = 0;j < 6-i;j++){
}
for(int j = 1;N = 2*i-1;j <= N; j++){
boolean first = i==1 || i==5 || j==1 || j==N;
System.out.print(first ? "*":" ");
}
System.out.println();
}
4. 运行结果:
-
菱形
- 目标图形:行数为9的菱形
- 需求分析:图形由5行随行数依次减少1的空白,一个5行的等腰三角形,4行随行数依次增加1的空白,一个4行的倒等腰三角组成
- 代码实现:
for (int i = 1; i <= 5; i++) { for (int j = 0; j < 6 - i; j++) { System.out.print(" "); } for (int j = 1; j <= 2 * i - 1; j++) { System.out.print("*"); } System.out.println(); } for (int i = 1; i <= 4; i++) { for (int j = 0; j <= i ; j++) { System.out.print(" "); } for (int j = 1, N = 9 - 2 * i; j <= N; j++) { System.out.print("*"); } System.out.println(); }
- 运行结果:
-
空心菱形
- 目标图形:行数为9的空心菱形
- 需求分析:图形由5行随行数依次减少1的空白,4行随行数依次增加1的空白,每次j循环输出的第一个和最后一个*组成
- 代码实现:
for (int i = 1; i <= 5; i++) { for (int j = 0; j < 6 - i; j++) { System.out.print(" "); } for (int j = 1; j <= 2 * i - 1; j++) { boolean first = j==1||j==2*i-1; System.out.print(first ? "*":" "); } System.out.println(); } for (int i = 1; i <= 4; i++) { for (int j = 0; j <= i ; j++) { System.out.print(" "); } for (int j = 1, N = 9 - 2 * i; j <= N; j++) { boolean first = j==1||j==N; System.out.print(first ? "*":" "); } System.out.println(); }
- 运行结果