2016-10-26 5 views
-2

이 코드 조각을 찾았는데 어떻게 작동하는지 알기 위해 노력하고 있지만 return 문 다음 부분을 이해하지 못합니다. 누군가가 이것을 설명 할 수 있습니까?어떻게 반환합니까?

int f(int y) 
{ 
    return (y<=1)?1:y*f(y-1); 
} 
+9

조건부 또는 삼항 연산자에 대해 읽습니다. –

+1

이것은 재귀 함수입니다. –

+0

피보나치 또는 무엇인가? –

답변

4

이 :

int f(int y) 
{ 
    return (y<=1) ? 1 : y*f(y-1); 
} 

이 동일합니다 : 그것은 The ternary (conditional) operator in C을 사용하는 재귀 함수의 것으로, 지금 당신에게 명확해야

int f(int y) 
{ 
    if(y <= 1) 
    { 
    return 1; 
    } else 
    { 
    return y*f(y-1); 
    } 
} 

.

조건 :

터너 연산자의 일반적 형태를 갖는다? A : 다른 condition진정한로 평가되면, 다음 a이 실행됩니다

, b 나.

+0

'(조건)'주위의 중괄호를 제거하십시오. 그것들은 구문의 일부가 아닙니다. –

+0

감사합니다 @PaulOgilvie, 그것은 솔직하다고 느끼지 않았다! :) – gsamaras

+0

또한 (지금 보시오) :';'를 제거하십시오. (';'는 명령문 종결 자이며 표현식을 명령문으로 변환하지만 이는 단지 표현식이므로 _no_';') –

관련 문제