所以我有这段代码,它最多计数到 21,但我想为每个数字制作一个 3 秒的计时器,如下所示:
13秒后
阿拉伯数字
3秒后
33秒后
四像这样,这是我的代码,如果你有任何想法,你能帮我做点什么吗?
package me.Capz.While;
public class WhileLoop {
public static void main(String args[]) {
double money = 0;
while (money < 22) {
System.out.println(money);
money++;
}
}
}
实现此目的的最简单方法可能是使用 Thread#sleep(long)
:
package me.Capz.While;
public class WhileLoop {
public static void main(String args[]) {
double money = 0;
while (money < 22) {
System.out.println(money);
money++;
try {
Thread.sleep(3000L); // The number of milliseconds to sleep for
} catch (InterruptedException e) {
// Some exception handling code here.
}
}
}
}
这是您的问题陈述的异步、非阻塞解决方案:
public static void main(String[] args) {
printAndSchedule(1);
}
public static void printAndSchedule(final int money) {
if (money < 22) {
System.out.println(money);
new Timer().schedule(new TimerTask() {
public void run() {
printAndSchedule(money + 1);
}
}, TimeUnit.SECONDS.toMillis(3));
}
}
代码
下面的用户。这将暂停 3 秒钟。
System.out.println(money);
Thread.sleep(3000);
public static void main(String args[]) throws InterruptedException {
double money = 0;
while (money < 22) {
System.out.println(money);
money++;
Thread.sleep(3000);
}
}