【问】下面的实例代码中,两个双层For循环中的i、j的取值应该如何理解?【题】创建Diamond类,在该类的主方法中完成10行的空心菱形输出,实现方法是使用两个双层For循环分别输出菱形的...
【问】下面的实例代码中,两个双层For循环中的 i、j 的取值应该如何理解?
【题】创建Diamond类,在该类的主方法中完成10行的空心菱形输出,实现方法是使用两个双层For循环分别输出菱形的上半部分与下半部分,实例代码如下:
public class Diamond {
public static void main(String[] args) {
int size = 10;
if (size % 2 == 0) {
size++;// 计算菱形大小
}
for (int i = 0; i < size / 2 + 1; i++) {
for (int j = size / 2 + 1; j > i + 1; j--) {
System.out.print(" ");// 输出左上角位置的空白
}
for (int j = 0; j < 2 * i + 1; j++) {
if (j == 0 || j == 2 * i) {
System.out.print("*");// 输出菱形上半部边缘
} else {
System.out.print(" ");// 输出菱形上半部空心
}
}
System.out.println("");
}
for (int i = size / 2 + 1; i < size; i++) {
for (int j = 0; j < i - size / 2; j++) {
System.out.print(" ");// 输出菱形左下角空白
}
for (int j = 0; j < 2 * size - 1 - 2 * i; j++) {
if (j == 0 || j == 2 * (size - i - 1)) {
System.out.print("*");// 输出菱形下半部边缘
} else {
System.out.print(" ");// 输出菱形下半部空心
}
}
System.out.println("");
}
}
}
实例运行结果如图
所示。
展开