例如:
for(int i = 0; i < 20 * 40 * 60 * 80; i++){ ... }
相比:
for(int i = 0; i < 3840000; i++){ ... }
第一个循环比第二个循环运行得慢得多(进行了一些时间试验),即使条件的值在整个迭代的任何阶段都不会改变。当然,使用方法会有所不同,因为该值可能会改变(即使它可能不应该改变)。我只是想知道为什么 Java 不缓存/临时该值。
long fact10 = factorial(10);
for(long n = 0; n < fact10; n++) vs for(long n = 0; n < factorial(10); n++)