gpt4 book ai didi

java - 无限for循环

转载 作者:行者123 更新时间:2023-12-01 23:36:38 25 4
gpt4 key购买 nike

这段代码工作正常:

public class Main {

public static void main(String[] args) {
long startTime = System.currentTimeMillis();
long endTime = startTime + 60000;
long index = 0;

while (true) {
double x = Math.sqrt(index);
long now = System.currentTimeMillis();
if (now > endTime) {
break;
}

index++;
}
System.out.println(index + " loops in one minute.");
}
}

但是后来,我尝试将其重写为 for 循环,但它陷入了无限循环。

public class Main {

public static void main(String[] args) {
long startTime = System.currentTimeMillis();
long endTime = startTime + 60000;

int i = 0;
for (long now = 0; now < endTime; i++) {
Math.sqrt(i);
now = System.currentTimeMillis();
System.out.println("now" + now);
System.out.println("end" + endTime);
}
}

System.out.println(i+"calculations done in one minute");
}

最佳答案

你的第二个例子不是无限循环,只需等待 1 分钟。

long endTime = startTime + 60000;

将endTime设置为 future 的60000毫秒,即60秒,即1分钟。

标准输出的打印速度非常快。

在循环中放入 Thread.sleep(1000L) ,您将看到在循环结束之前打印了 61 条语句。

long endTime = 1378140843604L; // for example
for (long now = 0; now < endTime; i++) {
now = System.currentTimeMillis(); // will be 1378140783604, 1378140784604, 1378140785604 and so on
System.out.println("now" + now);
System.out.println("end" + endTime);
Thread.sleep(1000L);
}

关于java - 无限for循环,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18577648/

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