addi0518   3년 전

이제 막 시작한 초짜입니다요...

도저히 모르겠어서 찾아봤는데 몇 일을 봐도 모르겠습니다.

'별(*)'이 출력 되려면 제가 생각하기에는 '별' 출력에 대한 무언가가 있어야 하는데

아무리 보고 이해를 해보려해도 30번째 줄에 '별' 밖에 안 보이는데

그거는 n이 1일 때만 하나 출력하는 거라고 생각되고 34번째 줄이 어떻게 돌아가는지

그리고 '별'이 어떻게 출력되는지도 모르겠습니다.

exponential_e   3년 전

재귀 호출에 대해서 공부해보시는게 좋을 것 같아요.

말씀하신대로 30번째 줄은 n이 1인 경우에 별을 출력합니다.

그런데 초기 n의 입력이 몇이던 27번째 줄로 인해 n의 값이 재귀 호출을 통해 점점 1으로 수렴하고 있습니다. (그러한 로직을 의도해놓은 코드로 보입니다.)

이러한 재귀 호출은 함수를 한번 호출하는것이 아닌 지속적으로 어떤 조건을 만나기전까지 호출하게 됩니다. (반복문과는 다른 개념인데 반복문처럼 여러번 어떤 동작을 수행한다고 이해하시면 됩니다.)

제가 여기서 재귀 호출에 대해 자세히 설명드리긴 어려울 것 같고.. 관련 내용을 찾아보고 공부하시는게 좋을 것 같습니다.

또한 재귀호출을 보고나서도 작동에 대해 잘 이해가 안 된다면 37번째 줄 반복문 내부에서 각 파라미터를 출력해보시면서 정리하면 그것도 도움이 되실 것 같습니다.

(현재 printStar라는 함수가 재귀적으로 호출되고 있습니다.)

댓글을 작성하려면 로그인해야 합니다.