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

来源:5-9 递归函数练习

weixin_慕尼黑8587307

2021-12-13 23:50

#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回答

  • 慕圣4515057
    2022-10-18 11:08:15

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

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

  • qq_慕仔5061244
    2022-10-13 08:49:32

    return age;

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

    如:

    if(n==1)

    {

        age=10;

    }

    else

    {

        age=rr(n-1)+2;

    }

    return age;

  • 黒井深
    2022-01-03 11:39:46

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

    你说的不会是

    if(){


    else{

      

    }


    }

    这样吧?

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

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


    http://img.mukewang.com/61d26fd70001947905370349.jpg

    weixin...

    没,我说的就是你发的那个图上的if然后{},紧接着else{},但是这里if后不能加这个{},else也要删去{},里面那个if。。。else不加{},这个程度才能运行出来。就是不知道为啥,之前都加了if{},然后else{}都对,就这个不行

    2022-01-03 11:47:26

    共 1 条回复 >

C语言入门

C语言入门视频教程,带你进入编程世界的必修课-C语言

926207 学习 · 20797 问题

查看课程

相似问题