很遗憾,我不能附上我的整个程序(因为它还没有完成,还有待编辑),所以我将尽我最大的努力阐明我的问题。
基本上,我试图将要保存的用户输入的整数添加到用户输入的下一个整数中(在循环中)。
到目前为止,我只是试着写公式来看看它是如何工作的,但这是一个死胡同。我需要一些东西,当它再次循环时,可以"保存"用户输入的整数,并且可以在计算中使用。
下面是我想要实现的目标:
- 用户输入一个整数(例如3)
- 整数被保存(我不知道如何这样做,用什么)(例如3被保存)
- 循环(可能是while)再次循环
- 用户输入一个整数(例如5)
- 将先前保存的整数(3)与新输入的整数(5)相加,得到(3 + 5 =)8。
- 和更多的输入,保存和添加…
你可能知道,我是Java的初学者。然而,我知道如何使用扫描器足够好,并创建各种类型的循环(如while)。我听说我可以尝试使用"var"来解决我的问题,但我不确定如何应用"var"。我知道numVar,但那完全是另一回事。更不用说,我还想看看有没有更简单的方法来解决我的问题?
好的你想要的是存储一个数字
因此考虑将其存储在一个变量中,例如loopFor
。
loopFor = 3
现在我们再次要求用户输入。
,我们把它加到loopFor
变量。
因此,我们可能使用scanner
进行输入,任何东西都可以使用,扫描仪是读取数字的更好选择。
Scanner scanner = new Scanner(System.in);//we create a Scanner object
int numToAdd = scanner.nextInt();//We use it's method to read the number.
所以结束了
int loopFor = 0;
Scanner scanner = new Scanner(System.in);//we create a Scanner object
do {
System.out.println("Enter a Number:");
int numToAdd = scanner.nextInt();//We use it's method to read the number.
loopFor += numToAdd;
} while (loopFor != 0);
您可以只使用sum
变量并在每次迭代时添加它:
public static void main(String[] args) {
// Create scanner for input
Scanner userInput = new Scanner(System.in);
int sum = 0;
System.out.println("Please enter a number (< 0 to quit): ");
int curInput = userInput.nextInt();
while (curInput >= 0) {
sum += curInput;
System.out.println("Your total so far is " + sum);
System.out.println("Please enter a number (< 0 to quit): ");
}
}
您将需要实现模型-视图-控制器(mvc)模式来处理此问题。假设你正在做一个纯Java应用程序,而不是基于web的应用程序,看看Oracle Java Swing教程,学习如何构建你的视图和控制器。
你的模型类非常简单。我建议在你的控制器上创建一个属性它是一个Java的整数数组列表例如在你的控制器顶部
private Array<Integer> numbers = new ArrayList<Integer>();
那么你的控制器可以有一个公共方法来添加一个数字并计算总数
public void addInteger(Integer i) {
numbers.addObject(i);
}
public Integer computeTotal() {
Integer total = 0;
for (Integer x : numbers) {
total += x;
}
return total;
}
// This will keep track of the sum
int sum = 0;
// This will keep track of when the loop will exit
boolean errorHappened = false;
do
{
try
{
// Created to be able to readLine() from the console.
// import java.io.* required.
BufferedReader bufferReader = new BufferedReader(new InputStreamReader(System.in));
// The new value is read. If it reads an invalid input
// it will throw an Exception
int value = Integer.parseInt(bufferReader.readLine());
// This is equivalent to sum = sum + value
sum += value;
}
// I highly discourage the use Exception but, for this case should suffice.
// As far as I can tell, only IOE and NFE should be caught here.
catch (Exception e)
{
errorHappened = true;
}
} while(!errorHappened);