打印星星(倒三角,正三角,等腰三角,直角三角,菱形,空心菱形)
正方形: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(); } } }