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