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

为什么这里的if..else不能用大括号

#include <stdio.h> 

int rr( n)

{

    int age;

if(n==1)

{

    age=10;

}

else

{

    age=rr(n-1)+2;

    return age;

}

}

int main() 

{

    int ss=rr(5);

printf("第5个人的年龄是%d岁", ss);

return 0;

}

我把if后面加个大括号,然后结束后再在else后面加个大括号,为什么这样运行出来是错误的,把大括号删了后是正确的,为啥这里的if..else不能用大括号。。大佬求助

正在回答

3 回答

如果return age在大括号里的话他会在每次的else中都被return回去了,也就是每次都被回归(意思是这个意思,具体怎么说我也不清楚,意会即可)一直到第一个人的时候就成了10-2,最终输出8是吧?

我一开始也是这样的,看了一楼的回答才恍然大悟。

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

return age;

这句要放在if{}else{}的外边

如:

if(n==1)

{

    age=10;

}

else

{

    age=rr(n-1)+2;

}

return age;

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

你把你想得代码打一遍不是更直观吗

你说的不会是

if(){


else{

  

}


}

这样吧?

貌似if语句没有这样使用的。。。你记错了吧

你是不是跟下面这种搞混了


http://img1.sycdn.imooc.com//61d26fd70001947905370349.jpg

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

weixin_慕尼黑8587307 提问者

没,我说的就是你发的那个图上的if然后{},紧接着else{},但是这里if后不能加这个{},else也要删去{},里面那个if。。。else不加{},这个程度才能运行出来。就是不知道为啥,之前都加了if{},然后else{}都对,就这个不行
2022-01-03 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消

为什么这里的if..else不能用大括号

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