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