问题
Say you have a recursive method, and you post-increment/decrement a value in the recursive call. Why will this result in a stack overflow exception when a pre-increment/decrement will not?
Ex.
numberCount(currentNumber++); //Stack overflow exception
numberCount(++currentNumber); //No stack overflow exception
Thanks in advance for any clarification.
回答1:
The first
numberCount(currentNumber++); //Stack overflow exception
is equivalent to:
numberCount(currentNumber);
currentNumber += 1;
while the the second
numberCount(++currentNumber); //No stack overflow exception
is equivalent to
currentNumber += 1;
numberCount(currentNumber);
Need I explain more?
回答2:
In case of numberCount(currentNumber++);
, if an Exception is thrown by numberCount
function, will the variable currentNumber
incremented?
来源:https://stackoverflow.com/questions/16095176/post-incrementing-decrementing-in-recursive-method-calls-java