gpt4 book ai didi

java - 仅在满足条件时打印 hello world

转载 作者:行者123 更新时间:2023-12-01 09:26:24 25 4
gpt4 key购买 nike

只有当以下两个条件都成立时,我才想打印出“Hello World”

  • 如果当前时间大于或等于晚上 8 点。
  • 如果 isDone 变为 true。这是来自另一个服务,基本上是为了检查某个进程是否完成。

否则我会继续 sleep ,直到上述两个条件都成立。下面是我的代码:

public static void main(String[] args) {
DateTime dt = new DateTime();
int hour = dt.getHourOfDay();
if (hour < 20) {
TimeUnit.HOURS.sleep(20 - hour);
}

boolean isDone = checkStatus();
while (!isDone) {
TimeUnit.MINUTES.sleep(15);
isDone = checkStatus();
}

// now print out
System.out.println("Hello World");
}

如您所见,我分别有两个不同的条件来进行检查,然后最后打印出来。有没有更好的方法编写上面的代码来完成同样的事情?

它不必完全准确。我每 15 分钟调用一次 checkStatus 方法来查看 isDone 是否变为 true。

最佳答案

应用程序中存在一个错误,如果恰好是在上午 8 点之后,但 checkStatus 在午夜之前未返回 true,那么它将继续白天执行。

将循环内的两个条件放在一起:

boolean isDone = false;
while (!isDone) {
int hour = new DateTime().getHourOfDay();
isDone = hour >= 20;
if (!isDone) TimeUnit.HOURS.sleep(20 - hour);

isDone = checkStatus();
if (!isDone) TimeUnit.MINUTES.sleep(15);
}

System.out.println("Hello World");

关于java - 仅在满足条件时打印 hello world,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39802769/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com