利用For循环打印三角形:
方法一:
package com.zctou.structure;
public class TestDemo02 {
public static void main(String[] args) {
// 用5行打印三角开明形
//分析:把要输出的三角形拆分成3份“半三角”,先是一个“倒三角”,现来两个“正三角”即可。
for (int i = 1; i <= 5; i++) {
for (int j = 5; j >= i; j--) {
System.out.print("-"); //输出倒三角
}
for (int k = 1; k <= i; k++) {
System.out.print("*");//跟着上面输出正三角
}
for (int l = 1; l < i; l++) {
System.out.print("*");//跟着上面输出正三角,但第一个*不用输出
}
for (int m = 5; m >= i; m--) {
System.out.print("-"); //输出倒三角,完成一个四边形
}
System.out.println();
}
}
}
输出:
-----*-----
----***----
---*****---
--*******--
-*********-
可以看到,这种打印思路就是把三角形拆分,分别用for循环打印每个小部件即可。
方法二:
package com.zctou.structure;
public class TestDemo01 {
public static void main(String[] args) {
//打印三角形
int line = 5; //定义要打印三角所要用到的行数
for (int i = 1; i <= line; i++) {
for(int j = 1; j<=line+(line-1); j++) { //控制每行要打印的总个数:line+(line-1)
if(j>line-i && j<line+i) { // 每行输出*的位置
System.out.print("*");
} else {
System.out.print("-");
}
}
System.out.println(" ");
}
}
}
输出:
----*----
---***---
--*****--
-*******-
*********
经观察发现:
- 第n行与n-1行的星星数相差2
- 第n行的星星数为n+(n-1),所以像打印九九乘法表一样,要打印三角形,至少用到2个for循环嵌套。一个控制行数,一个控制每行输出的星星数(列)。
- 第一行肯定是取中间数,也就是line的值。
文章目录