gpt4 book ai didi

java - Java 是否重新评估 for 循环 header 中的整个 boolean 表达式?

转载 作者:行者123 更新时间:2023-11-30 11:17:58 24 4
gpt4 key购买 nike

我正在编写一些代码来解决 Project Euler 上的一个问题,而且像往常一样,我必须遍历一系列数字。然而,游戏的一部分是尽可能高效。让我们以这段代码为例:

for (int i = 1; i < Math.pow(10,6);i++){
//code goes here
}

对于每次迭代,Java 是否重新计算 10^6?那么,换句话说,这样效率更高吗?

for (int i = 1; i < 1000000;i++){
//code goes here
}

最佳答案

好吧,让我们试试看:

for (int i=0;i<1000000;i++)

5046949

5314307

4619485

5045923

4397800

并通过方法调用:

for (int i=0;i<Math.pow(10,6);i++)

221661393

222532742

239673896

216985460

221952869

嗯,所以 Java 确实每次都重新计算方法。数字,因为它无法判断该方法会随时间返回相同的值。

你也可以这样做:

for (int i=0;i<(int)1e6;i++)

4329548

4781644

4614867

4508642

4508642

关于java - Java 是否重新评估 for 循环 header 中的整个 boolean 表达式?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24073765/

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