Тело if
-статмента может быть либо составным оператором, представляющим собой список операторов, окруженный {}
, либо это одиночный оператор после if
'sсостояние.Это означает, что этот код:
if(n>=2)
cout<<"number of times the function called: "<<endl;
return n*factorial(n-1);
полностью эквивалентен:
if(n>=2){
cout<<"number of times the function called: "<<endl;
}
return n*factorial(n-1);
Возможно, вы предполагали следующее:
int factorial(int n){
if(n>=2){
cout<<"number of times the function called: "<<endl;
return n*factorial(n-1);
}
return 1; // you should ALWAYS return something from a non-void function
}