2013-11-23 35 views
1

目前我的输出是倒数前的公式和答案。我想要这个方程式,倒计时和依次回答。我尝试过切换部件,但我不确定是否有一种巧妙的方法来做到这一点。Java中的TimerTask

下面的代码:

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

回答

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