例えば:
for(int i = 0; i < 20 * 40 * 60 * 80; i++){ ... }
に比べ:
for(int i = 0; i < 3840000; i++){ ... }
最初のループは 2 番目のループよりもはるかに遅く実行されます (いくつかのタイム トライアルを行いました)。ただし、条件の値は反復中のどの段階でも変化しません。確かに、メソッドを使用すると、その値が変わる可能性があるため、これは異なります (おそらく変更すべきではありませんが)。なぜJavaがその値をキャッシュ/一時保存しないのか疑問に思っていました。
long fact10 = factorial(10);
for(long n = 0; n < fact10; n++) vs for(long n = 0; n < factorial(10); n++)