2013-04-19 2 views
3

재귀 적 메서드가 있고 재귀 호출에서 값을 후행 증가/감소시킬 것이라고 가정 해보십시오. 왜 pre-increment/decrement가 실행되지 않을 때 스택 오버 플로우 예외가 발생합니까?재귀 메서드 호출에서 사후 증가/감소 (Java)

Ex.

numberCount(currentNumber++); //Stack overflow exception 

numberCount(++currentNumber); //No stack overflow exception 

미리 설명해 주셔서 감사합니다. 상기 제

numberCount(++currentNumber); //No stack overflow exception 

currentNumber += 1; 
numberCount(currentNumber); 
에 해당하면서

numberCount(currentNumber); 
currentNumber += 1; 

:

답변

10

numberCount(currentNumber++); //Stack overflow exception 

은 동등하다

더 자세히 설명해야합니까?

+0

나는이 IMO를 추가 했으므로 루프의 경우를 제외하고 항상 자신의 라인에서 ++ 연산자를 사용해야한다. 그렇게하면이 문제에 관해 생각할 필요가 없습니다. –

+0

@DerrekWhistle : 답변이 도움이 되었다면, 동의 함 (옆에 체크 표시가 있음)을 잊지 마시고, 아마도 그것을 upvote하십시오. – jlordo

+0

내 담당자가 늘어날 때까지는 업 보봇 (upvote)을 할 수 없지만 기꺼이 받아 들일 것입니다. –

0

numberCount(currentNumber++);의 경우 numberCount 함수로 예외가 발생하면 currentNumber 변수가 증가합니까?