You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.01 22:28:09