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

如何修改Java代码让斐波那契数列全部输出到单个JOptionPane对话框

问题原因

你现在的代码逻辑是每生成一个斐波那契数列元素,就调用一次JOptionPane.showMessageDialog方法,所以每个元素都会单独弹出窗口。想要所有结果在同一个窗口展示,只需要先把所有元素拼接成完整的结果字符串,最后只调用一次弹窗方法即可。

需要修改的代码部分

  • 新增一个字符串拼接容器,推荐用StringBuilder(比直接用String做字符串拼接性能更好),用来累计存储所有要输出的数列元素
  • 删除原本在初始化后、循环内的两次弹窗调用,改为把生成的元素追加到拼接容器中
  • 所有元素计算完成后,只调用一次弹窗方法,传入拼接好的完整结果

修改后的完整代码

package Fibonacci;
class Fibonacci 
{
    public static void main(String[]args) {
        int a = 0;
        int b = 1;
        
        String input; 
        input = javax.swing.JOptionPane.showInputDialog("How many elements you want to print in a Fibonacci series");
        int n = Integer.parseInt(input);
        
        // 定义StringBuilder用来拼接所有结果
        StringBuilder result = new StringBuilder();
        // 先把前两个元素加进去
        result.append(a).append(" ").append(b).append(" ");
        
        int c;
        for(int i = 2; i < n; i++) {
            c = a + b;
            // 循环内只拼接新生成的元素,不弹窗
            result.append(c).append(" ");
            a = b;
            b = c;
        }
        // 所有元素计算完成后,只弹一次窗口展示完整结果
        javax.swing.JOptionPane.showMessageDialog(null, result.toString());
    }
}

如果是初学不想用StringBuilder,也可以用String类型的变量做拼接,写法更直观,只是性能略低,少量元素的场景下完全无差别,替换对应部分的写法即可:

// 初始化结果字符串
String result = a + " " + b + " ";
// 循环内拼接
result = result + c + " ";
// 最后弹窗直接传result即可

内容的提问来源于stack exchange,提问作者EC1

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.28 13:27:01