Java中的TimerTask

Java中的TimerTask,java,timertask,Java,Timertask,目前我的输出是倒数前的方程式和答案。我要等式,倒计时,然后按这个顺序回答。我尝试过更换零件,但我不确定是否有一种聪明的方法可以做到这一点 代码如下: import java.util.Timer; import java.util.TimerTask; public class S1p4 { public static void main(String[] args) { Timer timer = new Timer(); Ta

目前我的输出是倒数前的方程式和答案。我要等式,倒计时,然后按这个顺序回答。我尝试过更换零件,但我不确定是否有一种聪明的方法可以做到这一点

代码如下:

    import java.util.Timer;
    import java.util.TimerTask;
    public class S1p4 {

    public static void main(String[] args) {
        Timer timer = new Timer();
        Task task = new Task();
        timer.schedule(task, 1000, 1000);

        int num1 = (int) (Math.random()*10);

   int num2 = (int) (Math.random()*10);

        System.out.println(num1);

            System.out.println("+");

    System.out.println(num2);

    int addition = num1 + num2;

    System.out.println("=");

    System.out.println(addition);

    }
}

    class Task extends TimerTask 

{

    int i=4;

    @Override

    public void run() {

        i--;
        if(i==3)
            System.out.println("3 >>>");
        if(i==2){
            System.out.println("2 >>>");
        }
        if(i==1){
            System.out.println("1 >>>");
            cancel();    

            System.exit(0);
        }   
    }
}

你可以先把方程式打印出来。下一步启动计时器。然后,在主线程中,使用暂停踏板。然后在计时器完成最后一次迭代调用后。最后把答案打印出来


另请参见:

您可以这样做。注意,我将结果添加到Task的构造函数中,并在退出之前添加了System.out.println

import java.util.Timer;
import java.util.TimerTask;

public class S1p4 {

  public static void main(String[] args) {
    Timer timer = new Timer();
    int num1 = (int) (Math.random() * 10);
    int num2 = (int) (Math.random() * 10);
    int addition = (int) num1 + num2;
    System.out.println(num1);
    System.out.println("+");
    System.out.println(num2);
    // Add the result to the task.
    Task task = new Task(addition);
    timer.schedule(task, 1000, 1000);
  }
}

class Task extends TimerTask {
  // Store the result.
  private int result;

  // Construct a Task with the result.
  public Task(int result) {
    super();
    this.result = result;
  }

  // How many times to run.
  int i = 4;

  @Override
  public void run() {
    i--;
    if (i == 3) {
      System.out.println("3>>>");
    } else if (i == 2) {
      System.out.println("2>>>");
    } else {
      System.out.println("1>>>");
      cancel();
      // The timer is done print the result.
      System.out.println("The result was " + result);
      System.exit(0);
    }
  }
}