함수는 중괄호가 끝나면 종료되나요 Return 하면 종료되나요
쇼코홀릭
#include stdio.h
int GDP(int , int);
int main(void)
{
int num1, num2,result;
printf(최대 공약수를 구할 2개의 숫자를 입력하세요 :);
scanf(%d %d, &num1, &num2);
result =(num1 num2) ? (GDP(num1,num2)) : (GDP(num2,num1)) ;
printf(최대 공약수는 %d 입니다. \n,result);
return 0;
}
int GDP(int num1, int num2)
{
int i;
for(i = num1 ; i 0 ; i--)
{
if( (num1 % i == 0 & num2 % i == 0)&(i num2) )
return i;
//printf(%d,i)
}
}
// 1 2 3 4 6
위코딩에서 GDP 라는 함수를 보면 if 라는 함수를 만족하는 i 값은 1,2,3,4,6 입니다.
i가 -- 가 되어서 6을 리턴하는것 까지는 이해가 됩니다 그래서 result 는 6이 되겠죠?
그런데... 함수는 끝나지않고 계속해서 for 문을 돌리지 않나요? 그래서 결국은 return 1; 이 되어서 result값에 1이 저장될 것 같은데...
원래 함수는 return값을 전달함과 동시에 종료가 되는것인지 궁금합니다.
-
로지
전달 할 값을 받았기 때문에 리턴에서 함수가 종료됩니다.
-
새
리턴하면 함수를 종료시킵니다.