import java.util.Scanner; public class PrintDiamond { private int lineSize;//菱形总共占的行数:注:只能是单数! public PrintDiamond(int max){ if(max<0){ System.out.println("您输入的数据不合法:必须是大于0的整数!"); return; }else if(max%2==0){ System.out.println("您输入的如果是偶数;将会自动加1再输出!"); this.lineSize = max+1; }else{ this.lineSize= max; } //mid为最中间是第几行(行号)! //比如输出图形为9行的菱形,中间行就是第5行,mid就是5; int mid = (lineSize+1)/2; for(int i=1;i<=lineSize;i++){ int j,k; if(i<=mid){ for(j=1;j<=mid-i;j++) System.out.print(" "); for(k=1;k<=2*i-1;k++) System.out.print("*"); }else{ for(j=1;j<=i-mid;j++) System.out.print(" "); for(k=1;k<=lineSize-2*(j-1);k++) System.out.print("*"); } System.out.print("\n"); } } public static void main(String[] args) { while(true){ Scanner sc = new Scanner(System.in); System.out.println("请输入您想要打印的菱形的行数,然后回车确认(注:数字只能是大于0的整数!"); System.out.print("请输入:"); int lineSize = sc.nextInt(); System.out.println("---------------------------"); new PrintDiamond(lineSize);//要打印的菱形的行数! System.out.println("---------------------------"); } } }