0

我是编程新手。我正在开发一个问答游戏软件。在这里,我希望将倒计时打印为“3,2,1,go...go...go”

  package t2;

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

public class Stopwatch {
static int interval;
static Timer timer;

public static void main(String[] args) {
    Scanner sc = new Scanner(System.in);
    int delay = 1000;
    int period = 1000;
    timer = new Timer();
    interval = 3;
    System.out.println("3");
    timer.scheduleAtFixedRate(new TimerTask() {

        public void run() {
            System.out.println(setInterval());

        }
    }, delay, period);
}



 private static final int setInterval() {
    String go="go...go...go";
    if (interval == 2)
    {

        timer.cancel();
        return go;
    }

      return --interval;

}
}

这表示 setInterval() 具有 int 作为返回值。如果我放置System.out.print("go");return go;它的位置打印 go 并打印 1 ,这是超出要求的。请任何朋友可以告诉我如何做到这一点。

4

2 回答 2

1

一种选择是更改您的 setInterval() 方法以返回如下字符串:

private static final String setInterval() {
    String go="go...go...go";
    if (interval == 2)
    {

        timer.cancel();
        return go;
    }

    --interval;
    return String.valueOf(interval);
}
于 2013-04-05T00:36:39.117 回答
0

将返回类型更改setInterval为 object 以利用重载println方法,并且条件应检查 1 而不是 2。也使用print而不是println在同一行上具有输出。

private static final Object setInterval() {
    String go="go...go...go";
    if (interval == 1)
    {

        timer.cancel();
        return go;
    }
    return --interval;
}

完整示例

 package t2;

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

    public class Stopwatch {
        static int interval;
        static Timer timer;

        public static void main(String[] args) {
            Scanner sc = new Scanner(System.in);
            int delay = 1000;
            int period = 1000;
            timer = new Timer();
            interval = 3;
            System.out.print("3,");
            timer.scheduleAtFixedRate(new TimerTask() {

                public void run() {
                    System.out.print(setInterval() + ",");

                }
            }, delay, period);
        }

        private static final Object setInterval() {
            String go = "go...go...go";
            if (interval == 1) {

                timer.cancel();
                return go;
            }

            return --interval;
        }
    }
于 2013-04-05T00:35:06.183 回答