Java小数求和程序为何弹出两次相同结果的对话框?
问题分析与解决
重复弹出对话框的原因
你在输出结果时使用循环遍历了长度为2的decimalNumbers数组,循环会执行两次JOptionPane.showMessageDialog,因此点击第一个对话框的确定按钮后,会触发第二次弹窗,出现内容完全相同的对话框。
求和逻辑错误
你的computeSumNumbers方法中,写的是sumNumbers[i] = decimalNumbers[i] + decimalNumbers[i],这是让每个输入的数和自身相加,而非计算两个输入小数的总和。
修正后的代码
SumOfApp类
import javax.swing.JOptionPane; public class SumOfApp { public static void main(String[] args) { double[] decimalNumbers = new double[2]; SumOf s = new SumOf(); // 获取两个小数输入 for (int i = 0; i < decimalNumbers.length; i++) { decimalNumbers[i] = Double.parseDouble(JOptionPane.showInputDialog(null, "Enter your numbers")); } s.setDecimalNumbers(decimalNumbers); s.computeSum(); // 仅弹出一次对话框展示总和 JOptionPane.showMessageDialog(null, s.getSum() + " is the sum of the two numbers"); } }
SumOf类
public class SumOf { private double[] decimalNumbers; private double sum; // 用单个变量存储两数总和,无需数组 public void setDecimalNumbers(double[] decimalNumbers) { this.decimalNumbers = decimalNumbers; } public void computeSum() { // 计算两个输入小数的总和 sum = decimalNumbers[0] + decimalNumbers[1]; } public double getSum() { return sum; } }
内容的提问来源于stack exchange,提问作者SpackJarrow
相关产品推荐
相关产品推荐

