本人在重新学习Java的过程中,遇到一个作业,就是用循环输出正三角,在完成作业之余,查看了很多网上的答案,用了好几次for循环,基本思路就是先拼接前面的空格,在去拼接后面的“”符号。感觉有点捉急,自己想了一想新的办法来更少的循环来得到答案。我利用一个if-else判断,以三角形顶点作为临界点,然后根据输出行数不同,拼接不同数量的空格和“”,分享代码,供大家参考。(一共两个例子,一个是正向的三角形,一个是等边三角形)
for (int i = 0; i < 10; i++) {
for (int k = 0; k < 9 + i; k++) {
if (k < 10 - i) {
System.out.print(" ");
} else {
System.out.print("* ");
}
}
System.out.println("\n\t");
}
输出结果如下:
下面是输出等边三角形的代码:
for (int i = 0; i < 10; i++) {
int n = 1;
for (int k = 0; k < 9 + i; k++) {
if (k < 10 - i) {
System.out.print(" ");
} else if (n % 2 == 1) {
n++;
System.out.print(" * ");
} else {
n++;
}
}
System.out.println("\n\t");
}
下面是执行结果图: