正方形: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();
}
}
}