我目前正在编写一个程序作为课堂练习,提示用户输入一系列数字,其中输入应以0结尾。程序应该能够在接触到变量正和时加一来自输入的正数。当程序接触到输入中的负数时,它应该能够将变量负和加一。该程序应该将所有这些数字加在一起以获得总数。该程序应该能够获得平均值并将其显示为双精度。
当我尝试运行该程序时,我会获得一条通往下载文件夹中 intellij 所在目录的路径。
我不确定我可以尝试什么不同的方法。我的 IDE 中没有弹出任何错误警告。
这是我的代码:
`导入java.util.Scanner;
public class LoopPractice {
public static void main(String[] args) {
//create scanner object
Scanner input = new Scanner(System.in);
int positiveSum = 0;
int negativeSum = 0;
int numberOfPositive = 0;
int numberOfNegative = 0;
int totalNumbers = 0;
int integers = input.nextInt();
while(integers != 0){
System.out.println("Enter integers ending with 0: ");
integers = input.nextInt();
if (integers > 0) {
positiveSum += integers;
numberOfPositive++;
totalNumbers++;
System.out.println("The number of positives is " + positiveSum);
} else if (integers < 0) {
negativeSum += integers;
numberOfNegative++;
totalNumbers++;
System.out.println("The number of negatives is " + negativeSum);
}
double average = (numberOfPositive + numberOfNegative) / totalNumbers;
System.out.println("The total is: " + totalNumbers);
System.out.println("The average is: " + average);
}
}
}
`
利用 do-while 循环 和 boolean。
此外,您还可以使用 BigInteger 类来表示 positiveSum 和 negativeSum。
这是一个例子。
import static java.math.BigInteger.ZERO;
import java.math.BigInteger;
import java.util.Scanner;
Scanner in = new Scanner(System.in);
int i;
BigInteger x, a = ZERO, b = ZERO;
boolean exit = false;
do {
x = in.nextBigInteger();
i = x.compareTo(ZERO);
if (i == 0) exit = true;
else if (i < 0) a = a.add(x);
else b = b.add(x);
} while (!exit);
输出
1 2 3 -4 -5 -6 0
a = -15
b = 6