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

整数扫描仪的n量之和

端木高卓
2023-03-14

我必须使用扫描仪输入未知数量的数字。一旦用户输入-1,程序需要打印输入的所有数字的总和,然后结束程序。总和中需要包含-1。

Scanner scanner = new Scanner(System.in);
int sum = 0;               

while (true) {
  int read = scanner.nextInt();
  if (read == -1) {
    break;
  }

 read = scanner.nextInt();
 sum += read;
}

System.out.println(sum);

我不能得到正确的总数。有人能帮忙吗?

共有3个答案

严峰
2023-03-14

下面的程序也将在你的总和中添加-1。您正在读取read=scanner.nextInt();两次。

 Scanner scanner = new Scanner(System.in);
        int sum = 0;               

        while (true) {
            int read = scanner.nextInt();


            sum += read;
            if (read == -1) {
                break;
            }
        }

        System.out.println(sum);
    }
锺离烈
2023-03-14
Scanner scanner = new Scanner(System.in);
int sum = 0;               
int read = 0;
while (read != -1) {
   read = scanner.nextInt();
   sum += read;
}
scanner.close();
System.out.println(sum);

这在我的情况下有效。关闭扫描仪也会删除警告。

屠昌胤
2023-03-14

在您的time循环中,您使用scanner.nexInt()read分配两次,这会破坏您的逻辑。

Scanner scanner = new Scanner(System.in);
int sum = 0;               

while (true) {
    int read = scanner.nextInt();
    if (read == -1) {
        sum += read; //have to include -1 to sum
        break;
    }

    //read = scanner.nextInt(); you have to delete this line

    sum += read;
}

System.out.println(sum);
}
 类似资料:
  • 问题内容: 我的Java作业有问题。我遇到了意外的异常,特别是: java.util.NoSuchElementException:找不到行 我正在使用,该程序不断读取任何内容,并重复“无效格式”异常文本。如果输入正确的值,则第一部分通过,然后该部分立即进入此异常。如果输入的值不正确,则它将开始循环异常。 这是我的代码: 问题答案: 您关闭了多个库,这些库关闭了底层库,因此另一个库将不再从同一库和

  • 问题内容: 使用Scanner类中的useDelimiter时遇到一些问题。 如果我有这个输入 美国广播公司 输出将是 AB 然后等到我键入另一个“-”以打印出最后一个字符 但是,如果我没有用户输入数据,而是将字符串插入到Scanner中,则代码将起作用。原因是什么?如何解决?我不想使用StringTokenzier 问题答案: 如果没有等待您输入另一个,则将错误地假定您已完成输入。 我的意思是,

  • 我做了一个程序,要求3个整数来输出三角形的类型。所有内容都成功运行和编译,但是,在要求用户查看是否要再次循环的部分,联机编译器会输出错误: 异常线程"main"java.util.NoSuchElement异常在java.util.Scanner.throwFor(Scanner.java:838)在java.util.Scanner.next(Scanner.java:1347)在Assignm

  • 我制作了一个简单的程序,根据公式中的3个数字计算增量。但是,小数点后的分数和数字(如3.33、3/4)有问题。如果我将其替换为任何字母,则会出现错误: 线程“main”java中出现异常。util。java上的InputMismatchException。base/java。util。扫描仪。throwFor(Scanner.java:939)访问java。base/java。util。扫描仪。下

  • 我正在尝试编写一个扫描器,以便每次\n被检测到,它会扫描那之后的行,直到一个新的\n出现。我第一次试过这样的东西。 它起作用,输出为 然而,当我尝试用扫描器(System.in)做同样的事情时,即使输入相同,它也不能以同样的方式工作 输出: 编辑:如果输入为 并立即输入提示符,那么Scanner.nextLine()是否就足够了?

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