Files
openide/java/java-impl/resources/inspectionDescriptions/TailRecursion.html
2025-02-05 04:43:28 +00:00

35 lines
908 B
HTML

<html>
<body>
Reports tail recursion, that is, when a method calls itself as its last action before returning.
<p>
Tail recursion can always be replaced by looping, which will be considerably faster.
Some JVMs perform tail-call optimization, while others do not. Thus, tail-recursive solutions may have considerably different
performance characteristics on different virtual machines.
</p>
<p>Example:</p>
<pre><code>
int factorial(int val, int runningVal) {
if (val == 1) {
return runningVal;
} else {
return factorial(val - 1, runningVal * val);
}
}
</code></pre>
<p>After the quick-fix is applied:</p>
<pre><code>
int factorial(int val, int runningVal) {
while (true) {
if (val == 1) {
return runningVal;
} else {
runningVal = runningVal * val;
val = val - 1;
}
}
}
</code></pre>
<!-- tooltip end -->
</body>
</html>