我正在尝试一个读取未指定数量的整数的程序,找到sum,positive,negative和average。我的问题是,它只会运行并允许输入一个整数然后什么也不做,或者使用以下代码,它永远不会停止让你输入数字因此我无法过去。我的数字= 0输出正确。
public class Compute {
// Count positive and negative numbers and compute the average of numbers
public static void main(String[] args) {
Scanner input = new Scanner(System.in);
int sum = 0;
positive = 0;
negative = 0;
total = 0;
System.out.println("Enter an integer, the input ends if it is 0: ");
int numbers = input.nextInt();
do {
if (numbers > 0) {
positive++;//add 1 to positive count
} else if (numbers < 0) {
negative++;//add 1 to negative count
}//end else if
sum += numbers; //add integer input to sum
numbers = input.nextInt();
total++;
} while (numbers != 0);
if (numbers == 0) {
System.out.println("No numbers are entered except " + numbers);
}//end if
}
}
答案 0 :(得分:1)
尝试以下代码。终止循环并在执行的任何时候将输出类型0视为输入。
import java.util.Scanner;
public class Compute {
// Count positive and negative numbers and compute the average of numbers
public static void main(String[] args) {
Scanner input = new Scanner(System.in);
int sum = 0;
int positive = 0;
int negative = 0;
int total = 0;
System.out.println("Enter an integer, the input ends if it is 0: ");
int numbers = input.nextInt();
do {
if (numbers > 0) {
positive++;// add 1 to positive count
sum += numbers; // add integer input to sum
}
else if (numbers < 0) {
negative++;// add 1 to negative count
sum -= numbers; // add integer input to sum
}
numbers = input.nextInt();
total++;
} while (numbers != 0);
System.out.println("The number of positives is \t " + positive);
System.out.println("The number of negatives is \t " + negative);
System.out.println("The total count of number is \t " + total);
System.out.println("The sum of all number is \t" + sum);
System.out.println("The average is \t"
+ ((double) sum / (positive + negative)));
}// end main
}// end Compute
答案 1 :(得分:1)
以下代码片段应该为您提供如何从控制台读取整数的一个很好的示例:
Scanner scanner = new Scanner(System.in);
do {
int i = scanner.nextInt();
// ...
} while (scanner.hasNext());
scanner.hasNext()
方法调用将阻止,直到用户在控制台上输入下一个数字