将用户输入保存在循环中计算



很遗憾,我不能附上我的整个程序(因为它还没有完成,还有待编辑),所以我将尽我最大的努力阐明我的问题。

基本上,我试图将要保存的用户输入的整数添加到用户输入的下一个整数中(在循环中)。

到目前为止,我只是试着写公式来看看它是如何工作的,但这是一个死胡同。我需要一些东西,当它再次循环时,可以"保存"用户输入的整数,并且可以在计算中使用。

下面是我想要实现的目标:

  1. 用户输入一个整数(例如3)
  2. 整数被保存(我不知道如何这样做,用什么)(例如3被保存)
  3. 循环(可能是while)再次循环
  4. 用户输入一个整数(例如5)
  5. 将先前保存的整数(3)与新输入的整数(5)相加,得到(3 + 5 =)8。
  6. 和更多的输入,保存和添加…

你可能知道,我是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);

相关内容

  • 没有找到相关文章

最新更新