2016-10-26 6 views
-2

私はこのコードを見つけましたが、どのように動作するか把握しようとしていますが、return文の後の部分はわかりません。誰かがこれを説明できますか?これはどのように機能しますか?

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

条件付き演算子または3項演算子について読んでください。 –

+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 B。

+0

'(条件)'の周囲の中カッコを削除します。それらは構文の一部ではありません。 –

+0

@PaulOgilvieありがとう、それは正直であると右に感じていない! :) – gsamaras

+0

(これだけ見てください): ';'を削除してください。 ( ';'は文の終了記号であり、式を文に変換しますが、これは式なので、_no_ ';') –

関連する問題