java - 如何打印输出倒计时数 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:英文不是很好!对不起大家。谢谢看到
解决方案
所有代码最多timer.scheduleAtFixedRate(...)
只执行一次。您只能看到一次数字,因为输出仅通过您的TimerTask
重复调用记录。然后Timer
执行TimerTask
并且每次执行它都会减少interval
。