此刻,我將方法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