Java基础:打印一个三角形


所谓的打印三角形,无非就是利用一些字符,按照形状进行组合。下面就来分析一下如何用代码的形式实现。


分析部分

以打印五行三角形为例,首先我们来想想这个三角形是怎么实现的。我们常规接触的到的三角形,可以是以下这种样式。

java打印helloworld Java打印三角形_System


我们想要实现上面这种图形,对于刚接触到Java基础的人来说,乍一看没有什么头绪。我们不妨换个思路。

java打印helloworld Java打印三角形_System_02


我们把三角形想象成已经放在了console的窗口里面,把它分割成四个部分,我们来进行逐个打印。

我们通过一个for循环作为外循环,功能是确定我们要打印三角形的行数。代码如下:

public class Test1 {
    public static void main(String[] args) {
        for (int i = 1; i <= 5; i++) {
        
        }
    }
}

接着我们来打印左边的倒三角,使用一个for循环,初始值 j 为5,当 j 大于等于 i 时,打印一个空格,传递的数值 j 就减少1,程序按顺序结构往下走:(可以在打印语句里加入字符来判断是否打印成功)

java打印helloworld Java打印三角形_java_03

public class Test1 {
    public static void main(String[] args) {
        for (int i = 1; i <= 5; i++) {
            for (int j = 5; j >=i ; j--) {
                System.out.print(" ");
            }
            System.out.println();
        }
    }
}

java打印helloworld Java打印三角形_System_04


我们再来打印第二部分的半个三角形,使用一个for循环,当跳出上面的循环时,进入该循环,初始值为1,当 j 小于等于 i 时,打印一个 * ,传送该循环的数值 j 就增加1,程序按顺序结构往下走:

public class Test1 {
    public static void main(String[] args) {
        for (int i = 1; i <= 5; i++) {
            for (int j = 5; j >=i ; j--) {
                System.out.print(" ");
            }
            for (int j = 1; j <=i; j++) {
                System.out.print("*");
            }
            System.out.println();
        }
    }
}

java打印helloworld Java打印三角形_javase_05


最后我们打印剩下的半边三角形,使用一个for循环,当 j 小于 i 时,打印一个 * ,传递的数值 j 就减少1,运行结束后回到外循环:

public class Test1 {
    public static void main(String[] args) {
        for (int i = 1; i <= 5; i++) {
            for (int j = 5; j >=i ; j--) {
                System.out.print(" ");
            }
            for (int j = 1; j <=i; j++) {
                System.out.print("*");
            }
            for (int j=1;j<i;j++){
                System.out.print("*");
            }
            System.out.println();
        }
    }
}

java打印helloworld Java打印三角形_java打印helloworld_06


这样,一个三角形就在分步的操作下打印完成了。


可能会出现的问题(要点)

  1. 每个内循环里面,打印语句的方法是print(),不是println(),如果是后者我们每打印一次就会换行,就构不成三角形了。
  2. 外循环里面除了三个内循环以外,还有一句换行语句——System.out.println(),等到所有的内循环都运行一遍的时候,就会换行,然后才回到外循环来打印下一行的数据。
  3. 第三个循环里,判定条件是 j < i ,这里不可以设置成小于等于,不然我们打印的就是一个上底边为2的梯形。