Java基础:打印一个三角形
所谓的打印三角形,无非就是利用一些字符,按照形状进行组合。下面就来分析一下如何用代码的形式实现。
分析部分
以打印五行三角形为例,首先我们来想想这个三角形是怎么实现的。我们常规接触的到的三角形,可以是以下这种样式。

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

我们把三角形想象成已经放在了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,程序按顺序结构往下走:(可以在打印语句里加入字符来判断是否打印成功)

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();
}
}
}
我们再来打印第二部分的半个三角形,使用一个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();
}
}
}
最后我们打印剩下的半边三角形,使用一个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();
}
}
}
这样,一个三角形就在分步的操作下打印完成了。
可能会出现的问题(要点)
- 每个内循环里面,打印语句的方法是print(),不是println(),如果是后者我们每打印一次就会换行,就构不成三角形了。
- 外循环里面除了三个内循环以外,还有一句换行语句——System.out.println(),等到所有的内循环都运行一遍的时候,就会换行,然后才回到外循环来打印下一行的数据。
- 第三个循环里,判定条件是 j < i ,这里不可以设置成小于等于,不然我们打印的就是一个上底边为2的梯形。
















