这是很多人在入门学习Java时,经常遇见的一种题,它考察的是学习者对for循环的理解程度.
解题思路:我们可以将菱形分为上下两部分,上部分空格逐行减少,星号逐行增加,下半部分则刚好相反,空格逐行增加,星号逐行减少.
下面是笔者所写代码.
public class Demo {
public static void main(String[] arg) {
int n=4;
for (int i = 0; i <= n; i++) {
for (int a = n; a > i; a--) {
System.out.print(" ");
}//逐行减少空格
for (int b = 0; b < i*2-1; b++) {
System.out.print("*");
}//逐行增加星号
System.out.println();//换行
}
for (int i = n-1; i > 0; i--) {
for (int a = n; a > i; a--) {
System.out.print(" ");
}//逐行增加空格
for (int b = 0; b < i*2-1; b++) {
System.out.print("*");
}//逐行减少星号
System.out.println();//换行
}
}
}
下面是运行结果: