Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ionic-framework/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 根据经过的时间设置条件_Java_If Statement_Time_While Loop - Fatal编程技术网

Java 根据经过的时间设置条件

Java 根据经过的时间设置条件,java,if-statement,time,while-loop,Java,If Statement,Time,While Loop,我正在编写这段代码,我需要根据经过的时间执行函数 比如说,对于一个随机的例子,我想测量时间,以毫秒为单位,最多10毫秒,当这发生时,它会打印hello。在这个过程中,如果它达到6秒,我希望它打印出再见,比如说2秒,然后继续打印出hello,再打印2秒,直到它达到10秒 我假设这将通过if语句和while循环来完成,但尚未成功完成 我一直在使用currentTimeMillis(),我更愿意使用该选项来测量时间,但一般来说,我如何才能以这种方式完成上述操作?这个例子有点愚蠢,但我实际上想做的是类似

我正在编写这段代码,我需要根据经过的时间执行函数

比如说,对于一个随机的例子,我想测量时间,以毫秒为单位,最多10毫秒,当这发生时,它会打印hello。在这个过程中,如果它达到6秒,我希望它打印出再见,比如说2秒,然后继续打印出hello,再打印2秒,直到它达到10秒

我假设这将通过
if
语句和
while
循环来完成,但尚未成功完成

我一直在使用
currentTimeMillis()
,我更愿意使用该选项来测量时间,但一般来说,我如何才能以这种方式完成上述操作?这个例子有点愚蠢,但我实际上想做的是类似的,所以上面的例子就可以了

谢谢各位

编辑:根据要求,这是我为上面的示例所做的尝试

    long x = System.currentTimeMillis();

    while(System.currentTimeMillis() - x < 10000)
    {
        System.out.println("hello");

        if(System.currentTimeMillis() - x == 6000)
        {
            System.out.println("goodbye");
            if(System.currentTimeMillis() - x > 8000)
            {
                System.out.println("hello");
            }
        }

    }
long x=System.currentTimeMillis();
而(System.currentTimeMillis()-x<10000)
{
System.out.println(“你好”);
if(System.currentTimeMillis()-x==6000)
{
System.out.println(“再见”);
如果(System.currentTimeMillis()-x>8000)
{
System.out.println(“你好”);
}
}
}

只需记录一个开始时间,然后执行每个循环,直到当前时间达到该开始时间加上任何阈值。比如:

long startTime = System.currentTimeMillis();
long tenSecondsFromStart = startTime + 10*1000;
long eightSecondsFromStart = startTime + 8*1000;
long sixSecondsFromStart = startTime + 6*1000;


while(System.currentTimeMillis() < sixSecondsFromStart){
   System.out.println("Hello");
}

while(System.currentTimeMillis() < eightSecondsFromStart){
   System.out.println("Goodbye");
}

while(System.currentTimeMillis() < tenSecondsFromStart){
   System.out.println("Hello again");
}
long startTime=System.currentTimeMillis();
long tenSecondsFromStart=startTime+10*1000;
长8秒自开始=开始时间+8*1000;
长6秒自开始=开始时间+6*1000;
while(System.currentTimeMillis()<6秒自启动){
System.out.println(“你好”);
}
while(System.currentTimeMillis()
你能公布到目前为止你做了什么吗?你不能依赖于你将达到的确切目标是
6000
等等。。你应该使用一系列的选项或者使用Thread.sleep来创建一个延迟,然后在每个条件下产生你想要的结果。是的,我也尝试过,它在显示hello和再见方面起作用,但是如果你知道我的意思,在指定的时间后不会再次返回hello。是的,这是一个很好的方法。为了使它成为一个变量,从而持续任何时间,我只需要用一个变量替换10、8或6,对吗?@Steglas肯定。这只是一个例子。您可以修改此方法以在任意时间内执行任何操作。