编写 java 代码来查找最大值和最小值。如果只有一个输入就会卡住

writing java code to find max&min. getting stuck on if there's only one input

下面发布的是我到目前为止的内容。它有效,但是如果只有一个答案,其中一个输出设置为零。有没有人有解决这个问题的想法?我的教授特别要求我们确保编写代码以包含这种情况。

public static void main(String[] args)
{
    String input;
    int number;
    int option;
    int min;
    int max;

    option = JOptionPane.YES_OPTION;        
    max = 0;
    min = 0;
    while (option == JOptionPane.YES_OPTION)
    {

    input = JOptionPane.showInputDialog("Enter a number: ");
    number = Integer.parseInt(input);

    if(number < max)
        min = number;
    else if(number > min)
        max = number;

    option = JOptionPane.showConfirmDialog
    (null, "Would you like to enter another number?");

    }

    JOptionPane.showMessageDialog(null, "The smallest number entered is "
    + min + ". The largest number entered is " + max + ".");
}

你的初始值是错误的:

max = 0;
min = 0;

如果你只输入负数,所有的都会比原来的max小,所以max会保持0。同样,如果你只输入正数,所有的都会大于原来的max原始 min,所以 min 将保持为 0。

将它们更改为:

max = Integer.MIN_VALUE;
min = Integer.MAX_VALUE;

编辑:

你把条件搞反了。

变化:

if(number < max)
    min = number;
else if(number > min)
    max = number;

if(number > max)
    max = number;
if(number < min)
    min = number;

您的代码甚至不适用于 2 个或更多输入(只需使用相同的数字测试两次或更多次)。要修复它,只需 删除 "else" 留下两个单独的 if 语句。您还应该按照 Eran 在他的回答中所说的那样设置最小最大值:

max = Integer.MIN_VALUE;
min = Integer.MAX_VALUE;

编辑: 抱歉,错误较多,语句应该是这样的:

if(number < min)
    min = number;
if(number > max)
    max = number;