第05天C语言(08):递归-基本概念

一、概念
// 一般情况下,能用循环做的事情,用递归函数都能做
// 但是要注意 : 不是什么时候都使用递归,递归要慎用(性能问题)
// 什么是递归函数, 函数自己搞自己
// 注意: 递归一定要有一个明确的结束条件,否则会造成死循环(无限循环)
二、代码
#include <stdio.h>
void scanfNumber();
int main()
{
#pragma 1.需求: 要求用户输入一个大于0的数,如果用户输入的数不大于0 那么就一直重复的提醒输入重新输入,知道用户输入的值大于0为止
    /*
    int number = -1;
    
    while (number <0) {
        printf("请输入一个大于0的整数,以回车结束\n");
        scanf("%i",&number);
    }
    printf("number = %i\n",number);
    
     */
    scanfNumber();
    
    // text(); // 造成死循环(无限循环)
    return 0;
}

void scanfNumber()
{
    // 1.接收用户输入的值
    int number = -1;
    printf("请输入一个大于0的整数,以回车结束\n");
    scanf("%i",&number);
    
    
    // 2.判断用户输入的值是否合法
    if (number <0) {
        // 不合法,需要重新输入
        // 函数可以自己调用自己
        scanfNumber();
    }
    else
    {
        printf("number = %i\n",number);

    }
    
}
// 无限循环的递归
void text()
{
    printf("text\n");
    text();
}
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容