我正在制作这段代码,我需要根据时间过去执行功能。
所以说一个随机的例子我想测量时间,以毫秒为单位,最多10秒,而这正在发生,它会打印你好。在此过程中,如果它达到6秒,我希望它打印出再见2秒,然后再继续打印你好再过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");
}
}
}
答案 0 :(得分:2)
只记录一个开始时间,然后执行每个循环,直到当前时间达到该开始时间加上任何阈值。类似的东西:
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");
}