当前位置: 首页 > 知识库问答 >
问题:

如何在Java中存储扫描仪输入整数,以便打印输入整数列表的总和?

华安民
2023-03-14

我正在做赫尔辛基大学的java MOOC,有一个练习要求我创建一个程序,让你输入你想要的数字,但是当你输入一个“0”时,它打印所有先前输入的数字的总和,并结束程序。当输入“0”时,我不知道如何“存储”输入数字以计算它们的总和。程序运行,但输入“0”将打印“0”。这就是我的代码的外观:

public class Application {
public static void main(String[] args) {
    Scanner scanner = new Scanner(System.in);
    System.out.println("Input a number.");

    while (true) {
        try {
            int number = Integer.parseInt(scanner.nextLine());
            System.out.println("Input another number.");

            if (number == 0) {
                System.out.println(number + number);
                break;
            }
        }

        catch (NumberFormatException e) {
            System.out.println("Please input a valid number.");
        }
    }
}

如何计算所有输入数字的总和?

共有2个答案

岳浩
2023-03-14

根据我上面的评论:

    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        int sum = 0;
        int number = -1;

        while (number != 0) {
            try {
                System.out.print("Input a number (0 to quit): ");
                number = Integer.parseInt(scanner.nextLine());
                sum += number;
            }
            catch (NumberFormatException e) {
                System.out.println("Please input a valid number.");
            }
        }
        System.out.println("Total:" + sum);
    }
水渊
2023-03-14

您可以创建一个计数器并使smth如下所示,您不需要保存所有数字:

  public static void main(String[] args) {
    Scanner scanner = new Scanner(System.in);
    int sum = 0;
    System.out.println("Input a number.");

    while (true) {
      try {
        int number = Integer.parseInt(scanner.nextLine());
        sum += number;
        System.out.println("Input another number.");

        if (number == 0) {
          System.out.println(sum);
          break;
        }
      }

      catch (NumberFormatException e) {
        System.out.println("Please input a valid number.");
      }
    }
 }
 类似资料:
  • 我正在尝试创建一个简单的程序来验证用户的输入是否为正整数。但是,在使用Scanner.hasNextInt()方法时遇到了一个问题。如果输入包含一个整数,比如“5个6”,我的程序将把6读入为一个整数。但是,我希望这样的语句无效,并提示用户只需要输入一个整数值。因此程序将输出“请输入整数值:”。 这就是我的程序的样子: 编辑:我理解next()与nextLine()之间的区别。然而,我的问题是实际仅

  • 我在java中有这段代码,代码工作得很好 你对这个问题有什么解决办法吗??? 谢谢

  • 我有一个扫描仪,它读入字符串作为坐标输入。我必须将这些字符串转换成整数,并将它们存储在坐标的Arraylist中,但我输入的最后一个值没有存储在Arraylist中。 我尝试在for-loop之外使用,但仍然没有变化。在存储和解析字符串时,我也尝试使用while循环而不是for循环,但得到了相同的结果。 预期结果: 点:[1,2,3,4] 实际结果 点:[1,2]

  • 我不知道用户会输入多少个数字,并且我需要程序在到达行尾时停止在数组中插入数字,因为在新行中用户会输入一个与此无关的数字。 例如: 用户可以输入: 1 5 7 8 9 5 4 或: 5 4 8 9 4 2 1 3 2 4 7 我需要的数组是,示例1:[1,5,7,8,9,5]

  • 这是我发现的一个编码挑战网站的问题。这是我的代码: 我需要做什么或改变什么来获得想要的输出。 }

  • 对于作业,我必须编写以下代码: 当我尝试编译它时,它在命令提示符下给了我3个错误,说“无法解析符号,符号:类扫描仪,位置:类单词,扫描仪用户输入=新扫描仪(System.in)”。我不确定错误在哪里。我应该使用BufferedReader作为输入吗?