首页 > 其他分享 >Day11.3:利用for循环打印三角形——思维详解

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

时间:2022-11-14 21:34:41浏览次数:52  
标签:-- 打印 Day11.3 int 循环 三角形 public 详解

利用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();//嵌套内的三个循环执行完一次后,换行打印第二波大循环
        }
    }
}

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

标签:--,打印,Day11.3,int,循环,三角形,public,详解
From: https://www.cnblogs.com/CQliuwei/p/16890475.html

相关文章

  • cfssl命令详解
    CFSSL是CloudFlare开源的一款PKI/TLS工具。CFSSL包含一个命令行工具和一个用于签名,验证并且捆绑TLS证书的HTTPAPI服务。使用Go语言编写。CFSSL包括:一组用于生成......
  • 打印出10000以内的完美偶数
    完美偶数是指一个数中的所有位数上的数都是偶数并且这个数的位数也是偶数。#include<stdio.h>intmain(){intn,i,c,d,e,f;scanf("%d",&n);inta[n];for(i=1;i<=n;i++){sc......
  • 支持多脚本语言的UDF等六大特性,TDengine 3.0计算引擎详解
    小 T 导读:在8月13日的TDengine开发者大会上,TDengine计算引擎架构师廖浩均带来题为《TDengine3.0——全新计算查询引擎的设计》的主题演讲,详细阐述了TDengine3.0......
  • TDengine 3.0 如何助力工业互联网实现边云协同?taosX 功能详解
    小 T 导读:在8月13日的TDengine开发者大会上,TDengine联合创始人侯江燚带来题为《核心代码全部开源,企业版价值何在》的主题演讲,为大家讲解了TDengine3.0企业版对......
  • 支持 10 亿个设备、100 台服务器节点,TDengine 3.0 架构详解
    在8月13日的TDengine开发者大会上,TDengine分布式系统架构师关胜亮带来题为《支持10亿时间线、100个节点的TDengine分布式系统架构设计》的主题演讲,详细阐述了T......
  • git rebase 详解
    https://blog.csdn.net/weixin_42310154/article/details/119004977图解Git基本命令merge和rebase0引言网上有太多讲rebase和merge的文章,但大多都是复制粘贴没......
  • mysql打印SQL语句
    场景:在业务中,系统有时候mysql语句更新和变动,控制台看不到SQL语句信息,这时候需要把数据库交互的SQL语句打印在控制台;处理此方法之一方案:增加一个sql语句拦截器,拦截打印SQL......
  • Pod详解之Pod生命周期
    Pod生命周期我们一般将pod对象从创建至终的这段时间范围称为pod的生命周期,它主要包含下面的过程:-pod创建过程-运行初始化容器(initcontainer)过程-运行主容器(mainc......
  • 详解 Spark Core 调优之数据倾斜调优(建议收藏)
    大家好,我是梦想家Alex,今天我想给大家分享一篇详解SparkCore调优的文章,本文较长,可以先收藏转发,再细细阅读....文章目录一、调优概述二、数据倾斜发生时的现象三、数据倾......
  • 正向代理与反向代理详解
    代理?我知道啊,不就是vue项目里面config文件配置的proxy嘛,我向后端接口请求数据的时候就配置它,反正能解决跨域这个问题......今天我们来讲讲代理这些事情,虽然我们知道,但是我......