第一种:public class Test1 {
public static void main(String[] args) {
int n = 11;// 行数
for (int i = 0; i < n; i++) {
if (i <= (n - 1) / 2) {
for (int j = i; j < (n - 1) / 2; j++) {
System.out.print(" ");
}
for (int k = 0; k < 2 * i + 1; k++) {
System.out.print("*");
}
} else {
for (int j = 0; j < i - (n - 1) / 2; j++) {
System.out.print(" ");
}
for (int k = 0; k < 2 * (n - i) - 1; k++) {
System.out.print("*");
}
}
System.out.println();
}
}
}
结果:*
***
*****
*******
*********
***********
*********
*******
*****
***
*
第二种:public class Test1 {
public static void main(String[] args) {
final int size = 5;// 定义有多少行
// 做1-4列的图形
for (int i = 1; i <= size; i++) {// 外层循环控制趟数
for (int j = i; j < size; j++) {// 这一层控制空白的地方
System.out.print(" ");
}
for (int k = 1; k <= 2 * i - 1; k++) {// 这层控制星星的数量
System.out.print("*");
}
System.out.println();
}
// 反方向打印图形,即做图形的下半部分
for (int i = size - 1; i >= 1; i--) {
for (int j = 1; j <= size - i; j++) {
System.out.print(" ");
}
for (int k = 2 * i - 1; k > 0; k--) {
System.out.print("*");
}
System.out.println();
}
}
}
结果:
*
***
*****
*******
*********
*******
*****
***
*