Day11.3:利用for循环打印三角形——思维详解

利用for循环打印三角形

要求:

利用for循环打印出以下三角形

  • 思路与分析:

观察三角形,每一行的左边其实都有打印内容的,只是被空格替换了;

将左边空格的部分替换成*,补齐后会得到一个梯形,我们把它分成三部分,会得到:

我们则可以利用for循环依次将三个部分打印出来,再将第一部分的内容替换成空格即可得到

先将第一个三角形打印出来

public class Triangle{
    public static void main(String[] args){
        //首先我们先思考第一个三角形是如何形成的,怎么让每一行的内容逐渐减少,或者说是每一次的循环打印出来的内容越来越少
        //我们要求打印的是一个五行五列的三角形,那么我们得到一个信息就是五行是由五次循环得到的,且每一次循环的打印内容会越来越少
        for(int a=1;a<=5;a++){//我们先建立一个循环5次for语句,再思考怎么打印出第一行的5个*;这一步尤为重要;
            //一行5个*,说明这一行的输出代码是在一个循环语句里面执行出来的,第一波循环了5次打印出了5个*;第二波循环了4次,打印出4个*
            //第一个三角形从上到下的5行是依次递减一个*,即每一波循环下来内部的小循环会少一次;第一次循环5次,我们可以联想到从5到1,以此减少可以联想到--;即b=5,b>=1,b--;但是要做到每一行缩减一次,即每一波循环下来内部要少一次小循环,我们观察b=5,b>=1,b--;如何让这个b做到只循环4次呢,那么将中间的条件改为b>=2,是不是只有四次了,那么我们将a作为变量,从1升到5,来代替原来b=5,b>=1,b--这个表达式中间的条件,则可以实现每一波循环下来,关于b这个循环语句的输出内容依次减少
            for(int b=5;b>=a;b--){//利用嵌套结构的思维,将b与a联系起来,b从5降到1,a从1增加到5,即可形成每次打印的内容逐次减少
                System.out.print("*");
                
                
            }System.out.println();//保证嵌套内的小循环每走完一次就会形成换行
            
        }
    }
}//外循环控制列,内循环控制行

第一个三角形打印出来,我们分析第二个三角形,第二个三角形第一行为1个*,后面逐渐增多,与第一个三角形恰好相反;

说明在一个循环语句中,打印的*随着循环次数增加,想到++;再想到一个变量c=1;c<=1;c++;如果c<=1则只会循环一次,如果c<=5,则循环5次;于是数字成为了变量,即a。因为第二个三角形与第一个三角形是平行的,所以在循环语句上一个三角形和第二个三角形是平级,平行输出,他们两个不存在嵌套,但是都属于a变量for循环的嵌套循环

public class Triangle{
    public static void main(String[] args){
        for(int a=1;a<=5;a++){
            for(int b=5;b>=a;b--){//观察三角形的行内容是从大到小;想到--
                System.out.print("*");
            }//第二个三角形的循环与第一个属于平行关系
            for(int c=1,c<=a;c++){
                System.out.print("*");//观察三角形的行内容是从大到小;想到++
            }
            //同样第三个三角形思维一样,且都是平行关系
            for(int d=1;d<a;d++){
                //这里如果d<=a,则第一行会像第二个三角形一样输出一个,但是三角形第一个只有一个*,所以这里就不要等于了,让第一次循环无效即可
                System.out.print("*");
            }
            System.out.println();//嵌套内的三个循环执行完一次后,换行打印第二波大循环
        }
    }
}

最后将第一个三角形的符号换成空格即可得到三角形

posted @   工地佬  阅读(422)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 使用C#创建一个MCP客户端
· ollama系列1:轻松3步本地部署deepseek,普通电脑可用
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· 按钮权限的设计及实现
点击右上角即可分享
微信分享提示