gpt4 book ai didi

java - 每百万次迭代打印一次消息

转载 作者:行者123 更新时间:2023-12-01 18:50:05 44 4
gpt4 key购买 nike

我需要编写一个循环,每百万次迭代打印一次消息。我想让它运行 10 秒(时钟时间)以查看打印了多少条语句。

我想我现在已经把自己绑在了结上......

public class OneInAMillion{
public static void main(String []args){
long startTime = System.currentTimeMillis(); //time at start of execution
long endTime = startTime + 10000; //time at end of execution (10000 = 10 seconds)
int count = 1;

while(System.currentTimeMillis() < endTime) { //run this before 10 seconds is up
for (int i = 0; i < count; i++) {
if(i % 1000000 == 0) {
System.out.println("Iteration: " + count++); //print every millionth iteration
}
}
}

System.out.println("Time up!"); //print once loop finishes
}
}

最佳答案

循环中有循环。想想每个循环的作用 - 第一个循环将持续到 10 秒过去。另一个将简单地从 0 开始到 1,并且在 while 循环的下一次迭代中,它将从 0 到 2,然后从 0 到 3,依此类推。当它为 0(很多)时它也会打印,因为 0%1000000 是 0。

尝试将它们组合成一个循环。这可以通过去掉 while 循环并仅使用带有 while 循环条件的 for 循环来完成,如下所示:

  public static void main(String[] args) {
long endTime = System.currentTimeMillis() + 10000; //time at end of execution (10000 = 10 seconds)
for (int i = 1; System.currentTimeMillis() < endTime; i++) {
if(i % 1000000 == 0) {
System.out.println("Iteration: " + i/1000000); //print every millionth iteration
}
}
System.out.println("Time up!"); //print once loop finishes
}

请注意,count 将始终为 i/1000000,所以我摆脱了它。

关于java - 每百万次迭代打印一次消息,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16167532/

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