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

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

原文地址:http://www.cnblogs.com/CQliuwei/p/16890475.html

1. 本站所有资源来源于用户上传和网络,如有侵权请邮件联系站长! 2. 分享目的仅供大家学习和交流,请务用于商业用途! 3. 如果你也有好源码或者教程,可以到用户中心发布,分享有积分奖励和额外收入! 4. 本站提供的源码、模板、插件等等其他资源,都不包含技术服务请大家谅解! 5. 如有链接无法下载、失效或广告,请联系管理员处理! 6. 本站资源售价只是赞助,收取费用仅维持本站的日常运营所需! 7. 如遇到加密压缩包,默认解压密码为"gltf",如遇到无法解压的请联系管理员! 8. 因为资源和程序源码均为可复制品,所以不支持任何理由的退款兑现,请斟酌后支付下载 声明:如果标题没有注明"已测试"或者"测试可用"等字样的资源源码均未经过站长测试.特别注意没有标注的源码不保证任何可用性