else這里為什么不能加{} ?
#include <stdio.h>
int getAge(numPeople)
{
??? int age;
??? if(numPeople==1)
??????? age=10;
??? else
??? {
??????? age = getAge(numPeople-1)+2;
??? return age;
??? }
}
int main()
{
??? int fifthAge = getAge(5);
?printf("第5個(gè)人的年齡是%d歲", fifthAge);
?return 0;
}
2018-10-29
你搞錯(cuò)了,能加的,你的語(yǔ)法錯(cuò)誤是numPeople沒(méi)有聲明類(lèi)型,else語(yǔ)法是對(duì)的,順便說(shuō)一句,你的遞歸函數(shù)邏輯有問(wèn)題,答案是錯(cuò)的,自己想想看怎么改進(jìn)
2018-11-02
if這里加個(gè){}和返回值;
如果不加{}這個(gè)判斷條件有效無(wú)效都會(huì)執(zhí)行age=10;,因?yàn)閕nt?函數(shù)要有返回值,這里執(zhí)行到age=10;就會(huì)卡住
2018-10-29
哦,你可能試問(wèn)為什么else可以不加{}是吧,因?yàn)閕f語(yǔ)法可以這么寫(xiě),這樣寫(xiě)默認(rèn)認(rèn)為你{}只包含一行,即我圖中紅線劃的區(qū)域,第二行編譯器會(huì)認(rèn)為已經(jīng)結(jié)束了,就不會(huì)再讀了,最好不要這么寫(xiě),這樣的代碼會(huì)被人罵的
2018-10-28
因?yàn)槟氵@里的return age也包括if中的age,如果你加{},當(dāng)numPeople==1時(shí)沒(méi)有返回值