java打印一个三角形

我正在尝试创建一个程序,用户输入三角形应该多长时间以及它的方向。 我遇到的问题是它在运行后不断向程序添加更多数字。

例如

State the length of the two sides (finish with -1): 5 Should the triangle face down (0) or up(1): 1 * ** *** **** ***** 2 Should the triangle face down (0) or up(1): 1 * ** *** **** ***** ****** ******* 

我的代码:

 import java.util.Scanner; public class Triangel { public static void main(String[] args) { Scanner in = new Scanner(System.in); // Initierings variabler för triangelsida. double length = 0; double sideLength = 0; // This part will ask for user input System.out .print("State the length of the two sides (finish with -1): "); while (sideLength != -1) { // Input. sideLength = in.nextDouble(); if (sideLength != -1) { // Input will be saved in variable length. length += sideLength; // This part will ask the user to state whether the triangle is // up or down. System.out .print("Should the triangle face down (0) or up(1): "); String direction = in.next(); // if the variables direction is equal to (1) this part will // run. if (direction.equals("1")) { for (int i = 1; i <= ((int) (length)); i++) { for (int j = 1; j <= i; j++) { System.out.print("*"); } System.out.println(); } } // if direction equals to (0) . else { for (int i = 1; i = 1; j--) { if (j >= i) System.out.print("*"); } System.out.println(); } } } } } } 

你有length += sideLength 。 这将继续将sideLength输入添加到while循环的每个循环的length变量中。 你可能想要的只是length = sideLength

为了让它在每次迭代时再次打印出你的第一个提示,只需输入你的System.out.print("State the length of the two sides (finish with -1): "); 在你的while循环中调用。 (它需要在sideLength = in.nextDouble();以便输入输入之前显示提示。)