2015-04-15 83 views
0

所以有这样的代码,其计数到21,但我想使3第二定时器对每个数目是这样的:
3秒后
3秒后
3秒钟之后

像这样,这里是我的代码,如果你有任何想法,你能帮我做点什么吗?爪哇定时器代码

package me.Capz.While; 

public class WhileLoop { 

    public static void main(String args[]) { 

     double money = 0; 

     while (money < 22) { 

      System.out.println(money); 

      money++; 

     } 
    } 
} 
+1

把'主题。循环体中的.sleep(3000)'(并酌情添加'throws'或'try' /'catch')。 – aioobe

+0

您不会像您在描述中所述的那样从1开始。在println之前使用money ++作为第一个输出打印1。 – RaphMclee

回答

0

下方的用户code.This将暂停3秒。

System.out.println(money); 
Thread.sleep(3000); 
0
public static void main(String args[]) throws InterruptedException { 
    double money = 0; 
    while (money < 22) { 
     System.out.println(money); 
     money++; 
     Thread.sleep(3000); 
    } 
} 
2

可能做到这一点最简单的方法是使用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. 
      } 
     } 
    } 
} 
1

这是你的问题陈述的异步非阻塞的解决方案:

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)); 
    } 
} 
+0

总是很高兴看到替代解决方案 – JonK