Java: problem with JOptionPane.showMessageDialog



我正在制作一个简单的程序,它接受3个整数(n1,n2,n3(的输入,例如,如果3个数字是6,12,4,它应该返回:

Integers entered: 6,12,4  
Sum = 22  
Average = 7.33...  
Smallest = 4  
Largest = 12  

这是使用JOptionPane.showMessageDialog显示在一个文本框中的。代码被放入一个循环中,因此每输入3个整数,它就会返回上面显示的内容。然而,当我运行程序时,它显示以下内容:

Integers entered: 6,6,6  
Sum = 22  
Average = 7.33...  
Smallest = 6  
Largest = 6  

n2、n3、最小值和最大值显示了n1的值。以下是循环中给我带来问题的代码:

JOptionPane.showMessageDialog(null, title);
String num1 = JOptionPane.showInputDialog("Enter 1st integer: ");
int n1 = Integer.parseInt(num1);
String num2 = JOptionPane.showInputDialog("Enter 2nd integer: ");
int n2 = Integer.parseInt(num2);
String num3 = JOptionPane.showInputDialog("Enter 3rd integer: ");
int n3 = Integer.parseInt(num3);
int sum = n1 + n2 + n3; //find sum
double avg = (double)sum/3; //find average
//find smallest integer
int smallest = n1;
if(n2 < smallest) n2 = smallest;
if(n3 < smallest) n3 = smallest;
//find largest integer
int largest = n1;
if(n2 > largest) n2 = largest;
if(n3 > largest) n3 = largest;
JOptionPane.showMessageDialog(null, "Integers entered: " + n1 + ", " + n2 + ", " + n3 
+ "nSum = " + sum
+ "nAverage = " + avg
+ "nSmallest = " + smallest
+ "nLargest = " + largest);

如何修复它,使n2、n3、最小值和最大值显示正确的值?

根据评估结果,将smallestlargest的值重新分配回n2n3。。。

if(n2 < smallest) n2 = smallest;
if(n3 < smallest) n3 = smallest;
//find largest integer
int largest = n1;
if(n2 > largest) n2 = largest;
if(n3 > largest) n3 = largest;

试试更像。。。

if(n2 < smallest) smallest = n2;
if(n3 < smallest) smallest = n3;
//find largest integer
int largest = n1;
if(n2 > largest) largest = n2;
if(n3 > largest) largest = n3;

最新更新