java - 如何退出Java循环?

标签 java loops break

如果您能帮助我完成 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/

相关文章:

java - Mongodb 连接池(改变连接池的大小)

python动态创建字典的字典

.net - 如何彻底关闭以Process.Start启动的控制台应用程序?

c++ - 中断 if 语句 c++ 错误

java安全套接字无需身份验证?

java - 串口发送命令,MVC应用

java - 不支持的主次版本 52.0 + Android 要求编译器符合级别 5.0 或 6.0。而是找到了 '1.8'

.net - 如何使用 "For Each"循环修改字符串?

javascript - 难以置信的快速 JS 循环?

java if语句没有破坏 "for loop"