我正在尝试创建一个程序,用户输入三角形应该多长时间以及它的方向。我遇到的问题是它在运行后不断向程序添加更多数字。
例如
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 <= ((int) (length)); i++) {
for (int j = ((int) (length)); j >= 1; j--) {
if (j >= i)
System.out.print("*");
}
System.out.println();
}
}
}
}
}
}
答案 0 :(得分:1)
你有length += sideLength
。这将继续为while循环的每个循环向sideLength
变量添加length
输入。你可能想要的只是length = sideLength
。
要在每次迭代时再次打印出第一个提示,只需将System.out.print("State the length of the two sides (finish with -1): ");
调用放入while循环中。 (它也需要在sideLength = in.nextDouble();
之前到来,以便在输入输入之前显示提示。)