Java打印菱形

来源:互联网 发布:infra网络 编辑:程序博客网 时间:2024/06/05 14:44

package cn.com.bochy;
import java.util.Scanner;
public class Diamond {
  public static void main(String[] args) {
   @SuppressWarnings("resource")
 Scanner scanner=new Scanner(System.in);
  System.out.println("请输入菱形的高度:");
  int height=scanner.nextInt();
  int top=(height+1)/2;//菱形上半部分的高度
  int bottom=(height-1)/2;//菱形下半部分的高度
   /**
    * 打印菱形上半部分
    */
 for(int i=1;i<=top;i++){
  //打印菱形上半部分的空格,空格的个数等于上半部分的高度减去所在的行
  for(int j=top-i;j>0;j--){
   System.out.print(" ");
  }
  //打印菱形上半部分的*,*的个数等于所在的行的2倍减1
  for(int m=1;m<=2*i-1;m++){
   System.out.print("*");
  }
  //换行
  System.out.println();
 }
 
  /**
    * 打印菱形下半部分
    */
 for(int k=1;k<=bottom;k++){
  //打印菱形下半部分的空格,空格的个数等于下半部分所在的行,第一行一个空格,第二行2个空格......
  for(int m=1;m<=k;m++){
   System.out.print(" ");
  }
  /* 打印菱形下半部分的*
   *  以菱形的总高度为9为例,下半部分高度为4,第一行的*的个数为7,第二行的*的个数为5,
   * 第三行的*的个数为3,第四行的*的个数为1,找到规律为(bottom-i)*2+1 
   * */
  for(int n=1;n<=(bottom-k)*2+1;n++){
   System.out.print("*");
  }
  //换行
  System.out.println();
 }
}
}