-1

嗨,我想在两个 if 条件之间设置几秒钟的时间间隔。在我的编码中,第一个“if”条件执行,控制将在只有第二个“if”条件执行后停止 3 秒。我不想使用线程线程概念。我想要java中的一些其他选项,比如“Timer”类等。我尝试了很多次,但找不到解决方案。请为此提供解决方案

提前致谢

这是我的代码:

package com.example;

public class TimeBetween {

   public static void main(String[] args) {
      int a=5;
      int b=3;
      int c;
      if(a!=0&&b!=0) {
         c=a+b;
         System.out.println("Addition:"+c);
      }
      if(a!=0&&b!=0) {
         c=a-b;
         System.out.println("Subtraction:"+c);
      }
   }
}
4

2 回答 2

5

1)if不是循环,它就像条件块

2)您可以使用睡眠(毫秒);在第一个if() { ...}块之后。

来自 oracle 文档:

Thread.sleep 使当前线程暂停执行一段指定的时间。这是使处理器时间可用于应用程序的其他线程或可能在计算机系统上运行的其他应用程序的有效方法。sleep 方法还可以用于调步,如下面的示例所示,并等待另一个具有被理解为具有时间要求的职责的线程,如稍后部分中的 SimpleThreads 示例。

于 2013-09-06T05:40:54.457 回答
0

最优雅的解决方案是Thread.sleep或者你可以模拟睡眠:

Object o = new Object();
synchronized(o) {
    o.wait(3000);
}

如果你想使用定时器,你可以这样做:但要注意定时器在后台启动一个线程。

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

public class TimeBetween {

    /**
     * @param args
     */
    public static void main(String[] args) {
        final int a = 5;
        final int b = 3;

        Timer t = new Timer(true);
        t.schedule(new TimerTask() {

            @Override
            public void run() {
                int c;
                if (a != 0 && b != 0) {
                    c = a + b;
                    System.out.println("Addition:" + c);
                }
            }

        }, 0);
        t.schedule(new TimerTask() {

            @Override
            public void run() {
                int c;
                if (a != 0 && b != 0) {
                    c = a - b;
                    System.out.println("Subtraction:" + c);
                }
            }

        }, 3000);
    }
}
于 2013-09-06T06:02:44.477 回答