java用for循环嵌套打印出一个菱形(思路分析加代码)

用java打印菱形

思路:

首先我们需要先分析整体结构

在这里插入图片描述

想要打印菱形,我们可以分为两个部分,即看成两个三角形,上面是3行的正向三角形,下面是2行的倒立着的三角形,这两个部分组合在一起,第一步我们先打印出上面的3行,第二步再打印出下面2行

1.用i表示行数,用j表示三角形每行元素前面的空格,用*号表示三角形的元素,用for循环嵌套即可完成,结构分析和代码如下,输入之后可以先运行尝试一下:

ijk关系
121j=3-i,k=2*i-1
213
305
for (int i = 1; i <= 3; i++) {           //打印行数
            for (int j=1;j<=3-i;j++){    //打印空格
                System.out.print(" ");
            }
            for(int k=1;k<=2*i-1;k++){   //打印*号
                System.out.print("*");
            }
            System.out.println();  //在最后执行换行操作
        }

2.接下来打印下边的小三角形,同样的用i表示行,j表示空格,k表示*号,代码如下:

ijk关系
113j=i,k=5-2*i
221
  for (int i = 1; i <= 2; i++) { //打印行
            for(int j=1;j<=i;j++){   //打印空格
                System.out.print(" ");
            }
            for(int k=1;k<=5-2*i;k++){   //打印*号
                System.out.print("*");
            }
            System.out.println();  //在每个最外层for循环结束时执行换行操作
        }

所有代码如下:
 //For循环打印菱形
public class For菱形 {
    public static void main(String[] args) {
        for (int i = 1; i <= 3; i++) {   //打印行数
            for (int j=1;j<=3-i;j++){    //打印空格
                System.out.print(" ");
            }
            for(int k=1;k<=2*i-1;k++){   //打印*号
                System.out.print("*");
            }
            System.out.println();  //在最后执行换行操作
        }
        for (int i = 1; i <= 2; i++) { //打印行
            for(int j=1;j<=i;j++){   //打印空格
                System.out.print(" ");
            }
            for(int k=1;k<=5-2*i;k++){   //打印*号
                System.out.print("*");
            }
            System.out.println();
        }
    }
}

输出结果:

在这里插入图片描述
打印菱形,主要是为了加强对for循环嵌套的使用,在用代码执行之前,首先需要在脑子里形成一个比较清晰的思路,第一步干什么,第二部干什么,需不需要分步骤完成,如果对上述思路还有不清楚了,可以用debug进行调试

debug调试:先在main方法入口设置断点,然后调试
在这里插入图片描述

在这里插入图片描述
我们先选择console控制台,然后选择箭头所指处下一步,程序就会按照步骤,从主方法进去开始执行,大家可以详细的看到程序的执行步骤,有助于对for循环嵌套有一个清晰的了解
在这里插入图片描述

  • 16
    点赞
  • 36
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值