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

if语句表达式非法起始问题及程序退出逻辑实现求助

解决方案:通过Ending类的counter值触发程序关闭

嘿,我来帮你搞定这个问题!看起来你已经把计数的基础逻辑搭得差不多了,就差在Core.java里完成判断和程序关闭的临门一脚对吧?

第一步:确认Ending类的Getter方法正确

因为counter是私有变量,必须通过公共的getter方法才能在Core.java里获取它的值。你提到已经写了getter,这里再确认下写法是否正确(避免低级错误):

public class Ending {
    private int counter = 0;

    public void addCounter() {
        this.counter++;
    }

    // 正确的Getter方法,一定要确保返回当前实例的counter值
    public int getCounter() {
        return this.counter;
    }
}

第二步:在Core.java中实现判断逻辑

首先要注意必须使用同一个Ending实例(不能每次判断时new一个新的Ending对象,不然计数会被重置),然后在调用addCounter()之后立即判断值:

public class Core {
    public static void main(String[] args) {
        // 初始化Ending实例,整个逻辑里都用这个实例
        Ending endingInstance = new Ending();

        // 模拟你调用addCounter的场景(比如某个事件触发时)
        endingInstance.addCounter();
        // 第一次调用后counter是1,不会触发关闭

        // 第二次调用计数
        endingInstance.addCounter();
        
        // 关键判断逻辑:当counter达到2时关闭程序
        if (endingInstance.getCounter() == 2) {
            // System.exit(0)表示正常退出程序,非0值用于异常退出
            System.exit(0);
        }
    }
}

额外注意事项

  • 如果你的程序是多线程环境,counter变量需要加上volatile修饰符,保证线程间的可见性,不然可能出现判断不生效的情况:
    private volatile int counter = 0;
    
  • 如果你不想用System.exit(0)(比如是GUI程序需要优雅关闭资源),可以换成触发关闭流程的逻辑(比如调用窗口的dispose方法、停止线程池等),但命令行程序用System.exit(0)是最直接的。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.25 04:17:29