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

Java程序For循环异常显示3/6/9而非1/2/3的问题求助

问题分析

你的核心问题是每次点击按钮时执行了完整的for循环,而非单次递增计数:

  • 假设用户输入3,点击一次"next day"按钮,for循环会执行3次,tradingDayCounter直接从0累加至3,因此显示"TRADING DAY 3";
  • 再次点击按钮,循环又执行3次,计数器从3累加至6,显示"TRADING DAY 6",以此类推。
修复方案

移除for循环,每次点击按钮仅让计数器递增1,同时添加边界判断避免超出用户设定的交易日数量:

修改后的tradeButtonListener代码

public class tradeButtonListener implements ActionListener {
    public void actionPerformed(java.awt.event.ActionEvent event) {
        // 仅在未达到最大交易日时递增计数
        if (tradingDayCounter < tradingDaysValue) {
            tradingDayCounter++;
            tradingDayLabel.setText("TRADING DAY " + tradingDayCounter);
        } else {
            // 可选:达到上限后的提示逻辑
            tradingDayLabel.setText("所有交易日已完成");
            // 可选:禁用按钮防止重复点击
            ((JButton) event.getSource()).setEnabled(false);
        }
    }
}

额外优化:重置计数器

在用户重新输入交易日数量时,重置计数器为0,避免旧计数干扰新的一轮流程:

public class startButtonListener implements ActionListener {
    public void actionPerformed(java.awt.event.ActionEvent event) {
        tradingDaysValue = Integer.parseInt(tradingDaysField.getText());
        // 重置计数器
        tradingDayCounter = 0;
        // 可选:重新启用next day按钮(如果之前被禁用)
        tradeButton.setEnabled(true);
    }
}

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.05 03:35:28