我在 Java 中有这段代码,使用两种不同类型的循环。
public class Test {
public static void main(String[] args){
long fl = 0, wl = 0;
int i = 0;
int a = 0;
long start = 0, stop = 0;
start = System.currentTimeMillis();
while(i<2000000000){
if(i%2 == 0)
a++;
else
a--;
i++;
}
stop = System.currentTimeMillis();
wl = stop-start/2;
System.out.println("\nWhile loop = "+wl);
i = 0;
a = 0;
start = 0;
stop = 0;
start = System.currentTimeMillis();
for(;i<2000000000;){
if(i%2 == 0)
a++;
else
a--;
i++;
}
stop = System.currentTimeMillis();
fl = stop-start/2;
System.out.println("For loop = "+fl);
System.out.println("Difference = "+(fl-wl));
}
}
现在,在多次运行程序后,我得出的结论是第二个循环的执行速度总是比第一个循环慢。起初,我认为它与一个是 for 循环,另一个是一个 while 循环有关,但即使我颠倒了顺序,第二个循环仍然执行得更慢。这是示例运行的输出。
While loop = 688721817947
For loop = 688721824295
Difference = 6348
现在,为什么会发生这种情况。