java - 我的 Java Sentinel-Controlled 循环不工作

标签 java loops

尝试编写一个在用户输入负值时停止的程序。然而,即使用户输入负值,循环仍然继续运行。不知道为什么。请帮忙!

    int input, smallest = 0, largest=0, total = 0, count = 1;
    double avg;

    System.out.print("Enter a number: ");
    input = keyboard.nextInt();

    while(input > 0)
    {

        System.out.print("Enter a number: ");
        largest = keyboard.nextInt();

        count++;

        if (input > largest)
        {
            largest = input;
        }
        else
        {
            smallest = input;
        }    

        total = total + largest + smallest;

    }


    avg = total / count;

    System.out.println("Largest number is: " + largest);
    System.out.println("Smallest number is: " + smallest);
    System.out.printf("Average number is: %.2f \n", avg);

最佳答案

您没有更新循环内 input 的值。

你需要做这样的事情:

while(input > 0)
{

    System.out.print("Enter a number: ");

    input = keyboard.nextInt(); //Update the input value for this iteration.
    largest = input;
    ...
}

关于java - 我的 Java Sentinel-Controlled 循环不工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39182578/

相关文章:

Java:字符串标记器到数组

持久化重复行时的 Javax 唯一约束行为

java - 如何使类的实例在不同的方法中可用?

c - 如何在char中使用For循环?

swift - 调用函数后释放类变量

java - Intellij 如何为项目的所有运行配置禁用类路径文件模式?

Java ArrayList 转换为 C++

javascript - 从数组(forEach)生成代码块(函数、变量)?

python - 循环遍历 Pandas 数据框列中的列表元素以返回新列中的列表

c - C中交换字母的加密