2017-05-14 2 views
2

다음 코드에서 아무것도 반환됩니까?for 루프에서 반환 C

#include <stdio.h> 

int try_this (int in); 

int main (void) 
{ 
    try_this (5); 
} 

int try_this (int in) 
{ 
    int i = 1; 

    for (i = 0; i < in; i = i + 2) { 
     return i; 
    } 

    return i; 
} 

for 루프가 있기 때문에 함수를 호출 한 후에 아무 것도 없기 때문에 코드는 아무 것도 반환하지 않습니까? 또는 1 (try_this에 선언 되었기 때문에) 또는 6 (루프 때문에)과 같은 숫자로 반환 될까요? 감사합니다 !! :)

+1

음 ...이 함수의 이름은'try_this'입니다. 네가 그렇게해야한다고 생각해. –

+2

'0'이 반환 될 때마다 –

+0

첫 번째'return'에 도달하면 함수는 지정된 값을 반환하고 함수 스택은 파괴 (시스템에 다시 릴리스 됨)됩니다. ... 그리고 컴파일러는'main 함수가 int 형 '이라고 비명을 지어야하므로 값을 반환해야합니다 (예 :'return try_this (5);'). 컴파일 문자열에서 최소한'-Wall -Wextra'를 컴파일하고 경고없이 컴파일 할 때까지 코드를 수락하지 마십시오. –

답변

2

첫 번째 return 문을 발견하면 함수가 반환됩니다. 함수가 루프를 시작한다는 것을 쉽게 알 수 있으며 i=0return i입니다. 처음으로 for 루프를 입력하면 그래서 당신은 try_this를 호출 할 때마다 당신은 i 0과 5 미만, 0 주에서 또한

, return 0; ...

+0

* backticks * (예 :''\' '')의 위 단락에 인라인 코드를 래핑하여 코드 형식을 지정할 수 있습니다. 답변의 가독성에 도움이되며 약간의 추가 노력이 필요합니다. –

+0

죄송합니다, 내 전화에서 대답했습니다 ... – CIsForCookies

+0

별거 아니, 나는 당신을 위해 그것을 고쳤다. 그 놈들의 모바일 키보드를 포맷하는 곰이어야합니다 ... –

1

를 얻을 수 있습니다. 그런 다음 return i; 문을 for 루프에 실행하면 try_this() 함수가 실행을 완료합니다.

+1

그건 다시 포맷에 좋은 엑스트라입니다. –

0

기본적으로 묻는 것은 함수 호출 후에 코드가 없어도 함수가 무엇을 반환하는지 묻는 것입니다.

대답은 예, 반환됩니다. 나중에 코드가 있는지 여부는 중요하지 않습니다. 함수가 반환합니다 (이 경우 0). 아무도 그것을 잡을 수 없습니다.