此刻,我将方法reader.nextInt()
调用两次,因此它仅对每个其他值使用addNumber()
方法,而不是每个值。需要调用扫描器方法read.nextInt()两次,但要求两个值相同
我该如何解决这个问题?
我试过使用while循环包含(true)以及下面打印的,都遇到相同的问题。
我忘了提,我需要程序打印输入的所有整数的总和。这是通过输入-1的值来触发的。 -1意味着从总和中排除。
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
NumberStatistics stats = new NumberStatistics();
Scanner reader = new Scanner (System.in);
System.out.println("Type numbers:");
while (reader.nextInt() != -1) {
stats.addNumber(reader.nextInt());
}
System.out.println("sum: " + stats.sum());
}
}
public class NumberStatistics {
private int amountOfNumbers;
private int sum;
public NumberStatistics() {
amountOfNumbers = 0;
sum = 0;
}
public void addNumber(int number) {
this.amountOfNumbers++;
this.sum += number;
}
public int amountOfNumbers() {
return this.amountOfNumbers;
}
public int sum() {
return this.sum;
}
public double average() {
if (this.sum() == 0) {
return 0;
}
else {
return (double) this.sum/this.amountOfNumbers;
}
}
}
请将代码在这里!!!! –
[Scanner在使用next(),nextInt()或其他nextFoo()之后跳过nextLine()?](https://stackoverflow.com/questions/13102045/scanner-is-skipping-nextline-after- using-next-nextint-or-other-nextfoo) –
@KenReid你在哪看到这两个问题之间的联系? – Tom