import java.util.Scanner;
public class Testpyramid {
public static void main(String[] args) {
// TODO code application logic here
int i = 0, j = 0, g = 0, n = 0;
while (i >= 0) {
Scanner input = new Scanner(System.in);
System.out.println("Enter an odd number:");
i = input.nextInt();
if ((i % 2) == 0) {
System.out.println("Number not valid, please enter an odd number: ");
} else {
if ((i % 1) == 0) {
for (; i > 0; i--) {
for (j = 1; j <= n; j++) {
System.out.print(" ");
}
for (int k = i; k > 0; k--) {
System.out.print("* ");
}
System.out.println();
n++;
}
}
System.out.println("Enter 1 to restart or 2 to exit:");
g = input.nextInt();
if ((g > 1) && (g < 3)) {
break;
} else {
if ((g < 1) || (g > 3)) {
System.out.println("Must enter 1 or 2");
}
}
}
}
}
}
在输入结束时,我询问用户是否想再试一次。当我再次输入数字时,输出由于某种原因将三角形向右移动。我整天都在研究这个项目,所有这些都是困扰我的。
答案 0 :(得分:1)
获得三角形的高度后,将n
重置为零。
// ...
Scanner input = new Scanner(System.in);
System.out.println("Enter an odd number:");
i = input.nextInt();
n = 0; // <- Here
// ...
答案 1 :(得分:1)
您必须在n
循环的开头重置while
值。
while (i >= 0) {
n = 0;
...
}