代码如下:
import java.util.Scanner;
//根据输入的行数输出菱形
public class Demo {
public static void printStar(int a){
int b;
boolean temp;
//判断输入的数字是奇数或是偶数,并标记
if(a % 2 == 0){
b = a / 2;
temp = true;
}else{
b = a / 2 + 1;
temp = false;
}
//输出上层部分
for (int i = 1; i < b + 1; i++) { //外层控制行数,共b行,根据星数递增,以便容易找到与k的关系规律。
for (int j = 0; j < b - i; j++) {//内1层控制输出空格数,并找出空格数j跟行数i的关系即j=b-i,即每行循环次数是b-i次。
System.out.print(" ");
}
for (int k = 0; k < 2 * i - 1; k++) {//内二次控制输出星数,星数与行数i之间的关系是:j=2i-1,即每行循环次数是2i-1次
System.out.print("*");
}
System.out.println();
}
//输出下层部分
for (int i = a / 2; i > 0; i--) {
//奇数行和偶数行对应的下层部分空格输出略有不同,星号相同
if(temp){
for (int j = 0; j < a / 2 - i ; j++) {//内1层控制输出空格数,并