为了账号安全,请及时绑定邮箱和手机立即绑定

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个人的年龄是%d岁", fifthAge);
 return 0;
}

正在回答

4 回答

你搞错了,能加的,你的语法错误是numPeople没有声明类型,else语法是对的,顺便说一句,你的递归函数逻辑有问题,答案是错的,自己想想看怎么改进https://img1.sycdn.imooc.com//5bd6778300018f5d09000586.jpg

0 回复 有任何疑惑可以回复我~

if这里加个{}和返回值;

如果不加{}这个判断条件有效无效都会执行age=10;,因为int 函数要有返回值,这里执行到age=10;就会卡住

https://img1.sycdn.imooc.com//5bdc0dcc0001578c03300485.jpghttps://img1.sycdn.imooc.com//5bdc0dcc0001082803490399.jpg


0 回复 有任何疑惑可以回复我~

哦,你可能试问为什么else可以不加{}是吧,因为if语法可以这么写,这样写默认认为你{}只包含一行,即我图中红线划的区域,第二行编译器会认为已经结束了,就不会再读了,最好不要这么写,这样的代码会被人骂的https://img1.sycdn.imooc.com//5bd678b100010ff605730442.jpg

1 回复 有任何疑惑可以回复我~

因为你这里的return age也包括if中的age,如果你加{},当numPeople==1时没有返回值

1 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消

else这里为什么不能加{} ?

我要回答 关注问题
意见反馈 帮助中心 APP下载
官方微信