안녕하세요~~~ 지금 출력결과를 보면 계산을 한 값을 출력하는 형태인데요. 계산된 결과를 출력하는게 아닌 n 값을 출력하게 됩니다. 지금 print 문에 보면, printf("%d", n); 을 출력하록 했습니다. 하나씩 돌려보면, 먼저 n 은 4 인자값을 받습니다. 그리고 if 를 만나서 참이 됩니다. 그럼 아래를 더이상 수행하지 못하고 바로 fn 으로 넘어가게 됩니다. 헌데 아래 보면 n 값을 출력하라고 했기 때문에, 현재 인자로 넘어온 값 4를 스택에 쌓아줍니다. 그리고 n은 3 인자값을 받고 이것도 마찬가지로 아래를 수행하지 못하고 3을 스택에 쌓아줍니다. 2도 마찬가지로 스택에 쌓게 됩니다. 그럼 현재 스택에는 2 3 4 가 쌓여 있습니다. 마지막으로 1을 가지고 호출을 하게 되고, 이건 조건에 만족하지 않아서 fn 은 더이상 호출하지 않습니다. 그리고 그 다음문장 출력을 하게 되니 1을 출력하게 됩니다. 그 이후에 스택에 쌓여있는 값들을 처리해야 합니다. 가장 먼저 나오는건 2-1이 아니라, n 값을 출력하라고 했기 때문에, 2를 그대로 출력하고, 그다음 3, 그다음 4가 나와서 출력이 됩니다. n-1 계산결과가 아닌, 현재 상태에서의 n 값을 출력하기 때문에, 1,2,3,4 가 출력이 되게 됩니다. 도움이 되셨으면 좋겠습니다. 감사합니다. ^^
안녕하세요~~~ if 구문은, 단순 if 문도 있고, if~else 구조도 있고, if~else if~else 구문 도 있습니다. 지금 문제는 단순 if 이고, if 블럭이 끝나게 되면 그 이후에 있는 문장들이 수행되어야 합니다. if 에서 계속 제어권을 넘기는 구조이고, 마지막 상수가 넘어오게 되면 그때부터는 if 를 태우지 않고, 그 아래 있는 print 를 수행하게 됩니다. 감사합니다. ^^
좋은 강의 항상 감사드리며 수강하고 있습니다. ^^
안녕하세요~~~
수강해주셔서 감사합니다. ^^
궁금한건 언제든 질문주세요~~
질문받으시고 매번 영상 찍어주시는거 쉬운일이 아닌데 정말감사합니다 ...
안녕하세요~~
아무래도 말로 설명하면 이해하는게 너무 힘드실 듯 해서,
그런것들은 영상으로 남기는거지요~~^^
수강해주셔서 감사합니다.
예시와 같이 재귀함수 중 출력이 조금 복잡합니다 ㅠ,ㅠ
감사합니다!
수강해주셔서 감사합니다. ^^
재귀 함수 문제 많이 풀어봤다고 넘어가려고 했었는데 안 봤으면 큰일날 뻔 했네요. 선생님 덕분에 재귀함수에 대해서 더 깊게 이해하고 갑니다. 감사합니다. :)
안녕하세요~~~
요 형태는 조금 새로운 형태이지요~~^^
이런 유형의 문제들이 나오면 꼭 필독을 달도록 하겠습니다.
감사합니다. ^^
안녕하세요 저는 아무리해도 1123 이라고 출력문이 나오는데 어떻게해야할까요 .... n이 1234라는건 알겠지만 계산식이 호출인거니까.... 너무헷갈려요
안녕하세요~~~
지금 출력결과를 보면 계산을 한 값을 출력하는 형태인데요.
계산된 결과를 출력하는게 아닌 n 값을 출력하게 됩니다.
지금 print 문에 보면, printf("%d", n); 을 출력하록 했습니다.
하나씩 돌려보면,
먼저 n 은 4 인자값을 받습니다.
그리고 if 를 만나서 참이 됩니다.
그럼 아래를 더이상 수행하지 못하고 바로 fn 으로 넘어가게 됩니다.
헌데 아래 보면 n 값을 출력하라고 했기 때문에, 현재 인자로 넘어온 값 4를 스택에 쌓아줍니다.
그리고 n은 3 인자값을 받고 이것도 마찬가지로 아래를 수행하지 못하고 3을 스택에 쌓아줍니다.
2도 마찬가지로 스택에 쌓게 됩니다.
그럼 현재 스택에는
2
3
4
가 쌓여 있습니다.
마지막으로 1을 가지고 호출을 하게 되고, 이건 조건에 만족하지 않아서 fn 은 더이상 호출하지 않습니다.
그리고 그 다음문장 출력을 하게 되니 1을 출력하게 됩니다.
그 이후에 스택에 쌓여있는 값들을 처리해야 합니다.
가장 먼저 나오는건 2-1이 아니라, n 값을 출력하라고 했기 때문에, 2를 그대로 출력하고, 그다음 3, 그다음 4가 나와서 출력이 됩니다.
n-1 계산결과가 아닌, 현재 상태에서의 n 값을 출력하기 때문에, 1,2,3,4 가 출력이 되게 됩니다.
도움이 되셨으면 좋겠습니다.
감사합니다. ^^
선생님! 매번 유튜브 영상으로 도움을 받고 있습니다 늘 너무 감사합니다!!
이번 영상에 궁금한게 있는데요!!
마지막 n =1 일 때 if 에서 else 가 없는데 마지막 print가 진행이 되는게 어떻게 진행이 되는걸까요??
안녕하세요~~~
if 구문은,
단순 if 문도 있고, if~else 구조도 있고, if~else if~else 구문 도 있습니다.
지금 문제는 단순 if 이고, if 블럭이 끝나게 되면 그 이후에 있는 문장들이 수행되어야 합니다.
if 에서 계속 제어권을 넘기는 구조이고, 마지막 상수가 넘어오게 되면 그때부터는 if 를 태우지 않고, 그 아래 있는 print 를 수행하게 됩니다.
감사합니다. ^^
@@HeungSsaem 감사합니다!!!
늘 정처기 공부하는데 너무 많은 도움이 되고 있습니다