Java 循环中的用户输入和求和问题

Issue with User Input and Sum within a Java Loop

在开始之前,我要感谢大家的帮助。我建议不要给我代码,而是指出错误所在。谢谢!

过去几个小时我一直在努力解决这个问题,但我似乎看不出哪里出了问题。我试图继续要求用户输入,直到用户输入 -1,这是标记值。输入标记值后,程序会显示用户输入的整数及其总和。由于我不知道的原因,打印的值只有 -1,总和完全不对。这是我的代码:

import java.util.Scanner;

public class UserSum
{
    public static void main(String args[])
    {
        //prompt user to enter numbers
        Scanner userInput = new Scanner(System.in);
        System.out.print("Enter positive integers. Enter -1 to stop. ");
        int integers = userInput.nextInt();

        //sum is initially set to 0
        int sum = 0;

        //execute commands as long as the input does not equal -1
        while(integers != -1)
        {
            //keep gathering user input
            integers = userInput.nextInt();
            sum += integers;
        }

        //print the results to the user
        System.out.println("You entered: " + integers + ", ");
        System.out.println("Sum is: " + sum);
    }
}

你称它为 整数 但它实际上不是一个整数列表,只是读取的最后一个。还要检查您总结的地方。你没有总结第一个读取的数字,但你总结了最后一个 (-1)... ).

你的总和值输出不正确的原因是你在添加到总和之前读入了两个输入。一次读取完全在 while 循环之前完成,一次读取在添加到 while 循环中的总和之前完成。您输入的第一个值永远不会保存在总和中。

尝试实现类似于以下方法的东西...

int sum = 0;
int value = 0;

while (value != -1) {
   sum += value;
   value = input.nextInt();
   sysout(value);
}

sysout(sum);

根据您的要求,我不会 post 编写代码来提供帮助,但会提供有关解决此问题的方法的建议。

首先,您处理用户输入的方式开了个好头,但可能不是 100% 正确。我认为 'while' 循环很好。问题是您正在读取 'first int',而不是将其添加到总和中,然后在将总和增加 'int'.

之前读取 'next int'

因此,反过来我会建议在 while 循环中切换整数和求和行,或者最初声明求和等于整数。

就打印所有使用的整数而言,您将不得不使用数组或数组列表。您首先要确定用户输入的整数数量,不包括“-1”,然后根据它声明一个数组。然后你会将所有整数读入数组并在最后对它们求和。总的来说,我认为这是解决这个问题的更有效方法。

希望对您有所帮助!

没有数组

如果不使用数组,您可以使用字符串并在字符串后附加用于计算总和的整数

ArrayList 是一种结构,在尝试存储多个值时非常适合所有意图和目的。 Google 是您的朋友,请求 Google 帮您一个忙,您将开始使用 ArrayLists。在你的循环中,你可以添加它,存储所有这些。