1
import java.util.Scanner;
public class InputLoop
{
    public static void main(String[] args)
  {
    Scanner scan = new Scanner(System.in);
    System.out.println("Enter an integer to continue or a non integer to finish");

    while (scan.hasNextInt())
    {
        System.out.println("Enter an integer to continue or a non integer to finish");
        int value = scan.nextInt();
        System.out.print("user: ");
    }
    scan.next();
    {
        System.out.println ("You entered");
        System.out.println ();

    }
}

}

在它说“你输入”的地方,我必须输入多少个整数,例如“3”,然后是整数的总和,例如“56”。我不知道该怎么做,我该如何实现呢?

4

4 回答 4

4

List<Integer>每次用户输入一个整数时,维护一个并添加到这个列表中。因此,添加的整数数将是list.size()。就您当前正在执行的操作而言,无法访问用户的旧输入。

您也可以使用存储总数和计数的变量(在这种情况下可以正常工作),但我认为List如果您决定更新/修改此代码,使用该方法将为您提供更大的灵活性,这是您作为程序员应该牢记在心。

List<Integer> inputs = new ArrayList<Integer>();

while (scan.hasNextInt()) {
    ...
    inputs.add(scan.nextInt());
}

...
于 2012-11-21T18:23:27.127 回答
2

只需保留一个名为的变量count和一个名为 的变量sumwhile并将循环中的代码更改为:

 int value = scan.nextInt();
 sum += value;
 count++;

while最后,您可以在循环结束后输出两者。

顺便说一句,您不需要将那些花括号 { } 放在scan.next();之后 它们是不相关的,并且总是独立于scan.next();执行。

所以只需将其更改为:

scan.next();  //I presume you want this to clear the rest of the buffer?
System.out.println("You entered " + count + " numbers");
System.out.println("The total is " + sum);
于 2012-11-21T18:24:53.153 回答
0

有一个计数变量,在开头声明main并递增它。

你也可以用同样的方式维护一个 sum 变量。

while (scan.hasNextInt())
{
    System.out.println("Enter an integer to continue or a non integer to finish");
    int value = scan.nextInt();
    count++;
    sum += value;
    System.out.print("user: ");
}

scan.next();
{
    System.out.println ("You entered");
    System.out.println (count);
}
于 2012-11-21T18:23:00.657 回答
0

对于您想要输出的内容,您不需要保留用户输入的历史记录。您所需要的只是一个运行总数和一个计数。您也不需要最后一次调用scan.next()或将最后一次println调用包含在单独的块中。

public class InputLoop
{
    public static void main(String[] args)
    {
        Scanner scan = new Scanner(System.in);
        System.out.println("Enter an integer to continue or a non integer to finish");

        int total = 0;
        int count = 0;
        while (scan.hasNextInt())
        {
            System.out.println("Enter an integer to continue or a non integer to finish");
            int value = scan.nextInt();
            total += value;
            ++count;
            System.out.print("user: ");
        }
        System.out.println ("You entered " + count + " values with a total of " + total);
    }
}
于 2012-11-21T18:27:12.140 回答