打印星星(倒三角,正三角,等腰三角,直角三角,菱形,空心菱形)

正方形:5行5列

public static void main(String[] args){
  //外层表示打印行数
  for(int i=1;i<=5;i++){
  //内层表示每行打印的个数
  for(int j=1;j<=5;j++){
    sout("*");
  }
  //打印五个就换行
  sout();
  }
}

直角三角形

第一行一个星,第二行两个星,第三行三个星 ······以此确定个数与行数的关系

public static void main(String[] args){
  //外层循环控制打印的行数
  for(int i=1;i<=5;i++){
    //内层控制每行打印的个数,个数和行数相等(即内层循环的次数和外层表示行数的变量相等)
    for(int j=1;j<=i;j++){
      sout("*");
    }
  //打印完一行换行
  sout();
  }
}

倒直角三角形:外层递增,内层递减;外层内层都递增;外层递减,内层递增

外层增,内层减
public static void main(String[] args){
  //外层表示行数
  for(int i=1;i<=5;i++){
    //内层表示每行个数
    //每行打印星星的个数控制内层循环的次数
    for(int j=5;j>=i;j--){
      sout("*");
    }
  //打完一行星星换行
  sout();
  }
}


外层减,内层增
public static void main(String[] args){
  //外层表示行数
  for(int i=5;i>=1;i--){
    //内层表示每行个数
    //每行打印星星的个数控制内层循环的次数
    for(int j=1;j<=i;j++){
      sout("*");
    }
  //打完一行星星换行
  sout();
  }
}


内层外层都递增
public static void main(String[] args){
  //外层表示行数
  for(int i=1;i<=5;i--){
    //内层表示每行个数
    //每行打印星星的个数控制内层循环的次数
    for(int j=1;j<=6-i;j++){
      sout("*");
    }
    //打完一行星星换行
    sout();
  }
}


内层外层都递减
public static void main(String[] args){
  //外层表示行数
  for(int i=5;i>=1;i--){
    //内层表示每行个数
    //每行打印星星的个数控制内层循环的次数
    for(int j=5;j<=5+i;j++){
      sout("*");
    }
    //打完一行星星换行
    sout();
  }
}

等腰三角形:打印空格(空格数量递减),打印星星(星星逐行递增)

public static void main(String[] args){
  //外层控制行数
  for(int i=1;i<=5;i++){
    //内层空格数量递减
    for(int j=5;j>=i;j--){
      sout(" ");
    }
    //内层星星数量是行数的两倍减一
    for(int k=1;k<=(2*i-1);k++){
      sout("*");
    }
  sout();
  }
}

菱形:要求输入菱形大小的总行数(奇数),会对应变化菱形的大小

public static void main(String[] args){
  Scanner sc=new Scanner(System.in);
  int row;
  do{
    //偶数行或者是行数太少则继续进入循环重新输入
    System.out.println("请输入菱形的大小:");
    row=sc.nextInt();
  }while(row%2==0||row<=3)
  //计算上半部分行数
  int top=row/2+1;
  //计算下半部分行数
  int bottom=row-top;
  //打印上半部分
  for(int i=1;i<=top;i++){
    //上半部分空格数量递减
    for(int j=top;j>=i;j--){
      System.out.print(" ");
    }
    //上半部分星星递增,数量与行数的关系是2*i-1
    for(int k=1;k<=2*i-1;k++){
      System.out.print("*");
    }
    //每打完一行换行
  System.out.println();
  }
  //打印下半部分
  for(int i=1;i<=bottom;i++){
  //空格是正直角三角,行数和个数相同递增
  for(int j=1;j<=i;j++){
    System.out.print(" ");
   }
  //星星随行数增加星星个数递减
  for(int k=1;k<=row-2*i;i++){
    System.out.print("*");
  }
  //每打完一行换行
  System.out.println();
  }
}

空芯菱形

public static void main(String[] args){
  Scanner sc=new Scanner(System.in);
    int row;
    do{
      //偶数行或者是行数太少则继续进入循环重新输入
      System.out.println("请输入菱形的大小:");
      row=sc.nextInt();
    }while(row%2==0||row<=3)
    //计算上半部分行数
    int top=row/2+1;
    //计算下半部分行数
    int bottom=row-top;
  //打印上半部分
  for(int i=1;i<=top;i++){
    //开头空格数量递减
    for(int j=top;j>i;j--){
      System.out.print(" ");
    }
    //打印星星部分
    for(int k=1;k<=2*i-1;k++){
      //如果是第一个和最后一个就打印星星
      if(k==1||k==2i-1){
        System.out.print("*");
      }
      //其余中间部分打印空格
      else{
        System.out.print(" ");
      }
  //打印完一行就换行
  System.out.println();
  }
}

  //打印下半部分
  for(int i=1;i<bottom;i++){
    //打印空格,空格逐行增加
    for(int k=1;k<=i;k++){
      System.out.print(" ");
    }
    //打印星星
    for(int j=1;k<=row-2*i;k++){
      //如果是第一个和最后一个就打印星星
      if(k==1||k==row-2*i){
        System.out.print("*");
      }
      //其余中间部分打印空格
      else{
        System.out.print(" ");
      }
    //打印完一行就换行
    System.out.println();
    }
  }
}
posted @ 2020-04-07 23:47  小小野生程序员sunny  阅读(2464)  评论(0编辑  收藏  举报