如果您能帮助我完成 Java 类(class)的作业,我将不胜感激。问题的提示是:
编写一个程序,读取一个非负整数列表,并显示最大整数、最小整数和所有整数的平均值。用户通过输入一个不用于查找最大、最小和平均值的负标记值来指示输入结束。平均值应该是 double 类型的值,以便用小数部分计算。
我的代码遇到的问题是,在运行时,循环不会结束,除非输入的第一个值是负数,在这种情况下它会返回:
输入的最大数量为:0 输入的最小数量是:0 输入的数字的平均值为:NaN
求助!谢谢。 -山姆
代码:
package blah;
import java.util.Scanner;
public class blahblah
{
public static void main(String[] args)
{
Scanner keyboard = new Scanner(System.in);
System.out.println ("Please enter a list of positive integers.");
System.out.println ("Please enter a negative integer when finished.");
int in = 0;
int max = 0;
int min = 0;
int sum = 0;
int count = 0;
in = keyboard.nextInt();
while (in>=0)
{
if (in > max) {
in = max;
}
if (in < min) {
in = min;
}
sum += in;
count++;
if (in < 0) {
break;
}
}
System.out.println("The maximum number entered was: " + max);
System.out.println("The minimum number entered was: " + min);
System.out.println("The average of the numbers entered was: " + (double)sum/count);
}
}
最佳答案
您需要在循环中再次读取 nextInt:
while (in>=0)
{
if (in>max){
max=in;
}
if (in<min){
min=in;
}
sum += in;
count++;
in = keyboard.nextInt();
//Check not needed here, handled by while loop
//if (in<0){
// break;
//}
}
根据评论编辑:您的作业方向错误,因此您将输入设置为等于最小/最大而不是将最小/最大设置为等于输入
关于java - 如何退出Java循环?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15691981/