我正在尝试制作一个程序,该程序接收未指定长度的整数数组。换句话说,长度取决于用户输入的整数数量,但用户在存储整数之前没有机会输入数组将包含的整数。可存储的最大整数数量为100.如果输入负数,则表示数组结束,并且不应存储此负数值。该程序还应该计算存储的整数的平均值。将未指定范围的数字存储到数组中
只要指定了数组的长度,所有这一切都非常简单。我不知道如何在输入负数时停止读取整数,而且我也不知道如何不存储负数。
目前,代码如下:
import java.util.Scanner;
public class AnalyzeScores {
public static void main(String[] args) {
double sum = 0, average = 0;
Scanner input = new Scanner(System.in);
int scores[] = new int[100];
System.out.println("Enter the scores: ");
for (int i = 0; i < scores.length; i++) {
scores[i] = input.nextInt();
if (input.nextInt() < 0) {
i--; // Remove the last input if negative
break; // Exit the loop
}
sum += scores[i];
average = sum/(i + 1);
}
System.out.println("Sum is " + sum);
System.out.println("Average is: " + average);
}
}
break语句适用于输入负数时退出循环,但相加平均是完全错误的。例如,输入的数字1 2 3 4 5 -1给出总和= 4,平均数= 2.
我希望这个问题不被认为是愚蠢的,我将不胜感激任何帮助!
在'换loop'使用:“如果(得分[I] <0){打破;}' – TheLostMind