pragma mark 遞歸的基本概念
pragma mark 概念
/**
什么是遞歸函數(shù) : 函數(shù)自己調(diào)用自己
*/
使用場景:面試蚀瘸、尋找文件夾的文件
pragma mark 代碼
#include <stdio.h>
void text();
void scanfNumber();
int main(int argc, const char * argv[])
{
// 需求:要求用戶輸入一個大于0的數(shù),如果用戶輸入的數(shù)不大于0\
那么就一直重復(fù)的提醒輸入更新輸入,直接用戶輸入的值大于0位置
/*
int number = -1;
while (number < 0) {
printf("請輸入一個大于0的整數(shù),以回車結(jié)束\n");
scanf("%i",&number);
}
printf("number = %i\n",number);
*/
// 一般情況下,能用循環(huán)做得事情,用遞歸函數(shù)都能做
// 但是要注意: 不是什么時候都使用遞歸,遞歸要慎用
// 什么是遞歸函數(shù) : 函數(shù)自己調(diào)用自己
// scanfNumber();
// 注意:遞歸一定要有一個明確的結(jié)束條件,否則會造成死循環(huán)(無限循環(huán))
text();
return 0;
}
#pragma mark 遞歸 死循環(huán)
void text()
{
printf("text\n");
text();
}
void scanfNumber()
{
// 1.結(jié)束用戶輸入的值
int number = -1;
printf("請輸入一個大于0的整數(shù),以回車結(jié)束\n");
scanf("%i",&number);
// 2.判斷用戶輸入的值是否合法
if (number < 0) {
// 不合法,需要重新輸入
// 函數(shù)可以自己調(diào)用自己
scanfNumber();
}
else
{
printf("number = %i\n",number);
}
}
最后編輯于 :
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者