基本上我必须打印两个traingle,上下颠倒,下下颠倒。它们都是相同的腿,我的程序运行良好,但由于某种原因,我的第二个三角形稍微向右倾斜。有人能向我解释一下如何修复以及为什么会出现这个错误吗?
public static void main(String[] args) {
Scanner s = new Scanner(System.in);
System.out.println("Enter number");
int num = s.nextInt();
for (int i = 0; i < num; i++) {
for (int j = num; j > i; j--) {
System.out.print("*");
System.out.print(" ");
}
System.out.println();
for (int k = 0; k <= i; k++) {
System.out.print(" ");
}
}
// second part
for (int i = 0; i < num; i++) {
for (int j = 0; j <= i; j++) {
System.out.print("*");
System.out.print(" ");
}
System.out.println();
for (int k=num; k>i; k-=2) {
System.out.print(" ");
}
}
}
}
* * *
* *
*
*
* *
* * *
几个小调整:
- 在第一个外部for循环的末尾
- 在末端的第二个外环中
参见下方的代码注释
for (int i = 0; i < num; i++) {
for (int j = num; j > i; j--) {
System.out.print("*");
System.out.print(" ");
}
System.out.println();
for (int k = 0; k < i; k++) { // stop condition changed
System.out.print(" ");
}
if (i < num -1) { // this was added
System.out.print(" ");
}
}
// second part
for (int i = 0; i < num; i++) {
for (int j = 0; j <= i; j++) {
System.out.print("*");
System.out.print(" ");
}
System.out.println();
for (int k=num-1; k>i+1; k-=1) { // stop condition change
System.out.print(" ");
}
}