gpt4 book ai didi

java - 为什么会跳过 for 循环?

转载 作者:行者123 更新时间:2023-12-02 13:41:25 25 4
gpt4 key购买 nike

long start = System.currentTimeMillis();
long m = 0;
System.out.println("Going into the loop");

for (int i = 0; i < 10000000; i++) {
for (int j = 0; j < 1000; j++) {
if (i % 2 == 0 && j % 3 == 0) {
m = i + j;
}
}
}

System.out.println("Out of the loop");

long end = System.currentTimeMillis();
System.out.println("Time : " + (end - start));
System.out.println("m : " + m);

当我运行上面的代码时,“m”的值计算为 10000997,运行时间为 13321。

Going into the loop
Out of the loop
Time : 13321
m : 10000997

但是当我注释最后一个打印“m”值的 S.O.P 语句时,运行时间约为 7。

Going into the loop
Out of the loop
Time : 7

那么为什么会发生这种情况呢? for 循环是否被跳过?

最佳答案

编译器优化您的代码并意识到变量 m 实际上是一个可以删除的死存储。然后它意识到 if 根本不做任何事情(在 m 被删除之后)并且也删除了它。内循环和外循环也是如此。

关于java - 为什么会跳过 for 循环?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59405131/

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