我的Java Sentinel控制循环不工作

我的Java Sentinel控制循环不工作,java,loops,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) { Syst

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

    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;
    ...
}

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

您需要这样做:

while(input > 0)
{

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

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

调试器是一个极好的工具,用于探索在这种情况下发生的事情。看起来像是一个打字错误:当OP要分配给
input
时,分配给
最大的
。你有没有检查过你的代码一次?调试器是一个极好的工具,用于探索在这种情况下发生的事情。看起来像是一个打字错误:分配给
最大值
当OP打算分配给
输入时
。您是否检查了代码一次??????