首页 > 解决方案 > 如何打印输出倒计时数 2 圈

问题描述

public static void main(String[] args) throws InterruptedException {
    Scanner sc = new Scanner(System.in);
    System.out.print("Input seconds => : ");
    String secs = sc.nextLine();
    int delay = 1000;
    int period = 1000;
    timer = new Timer();
    interval = Integer.parseInt(secs);
    System.out.println(secs);
    timer.scheduleAtFixedRate(new TimerTask() {
        @Override
        public void run() {
            System.out.println(setInterval());
        }
    }, delay, period);
}

private static final int setInterval() {
    if (interval == 1)
        timer.cancel();
    return --interval;
}

输出:5 4 3 2 1 0 预期:5 5 4 4 3 3 2 2 1 1 0 0

ps:英文不是很好!对不起大家。谢谢看到

标签: java

解决方案


所有代码最多timer.scheduleAtFixedRate(...)只执行一次。您只能看到一次数字,因为输出仅通过您的TimerTask重复调用记录。然后Timer执行TimerTask并且每次执行它都会减少interval


推荐阅读