return 用法
return 用法¶
函数就像一个管理员。你给他指令(参数),他在里面忙活一阵,最后 return 做两件事:
- 立刻下班——后续指令全部不执行
- (可选)递出来一样东西——可能是钱、包、纸条
注意,返回的类型和函数前写的类型需要完全相同。
return 本质上是提前结束函数并返回值(可以理解成提前交卷)。
提前结束,递出类型 int / float / char 等¶
void 函数可以写 return; 来提前收工,不返回值¶
void PreOrder(BiTNode *T)
{
if (T == NULL) return; // 给的纸条是空的 → 直接下班
visit(T); // 否则继续干活
PreOrder(T->lchild);
PreOrder(T->rchild);
}
提前结束,返回 NULL(属于指针类型)¶
BiTNode* BST_Search(BiTNode *T, ElemType x)
{
BiTNode *p = T;
while (p != NULL)
{
if (x == p->data)
return p; // 找到了目标包的位置,把纸条递给你
if (x < p->data)
p = p->lchild;
else
p = p->rchild;
}
return NULL; // 没找到,递一张空白纸条
}
不提前结束,会返回默认值¶
void traverse(LNode *L) // 收到一张纸条 L
{
LNode *p = L;
while (p != NULL)
{
visit(p->data); // 打开包查看
p = p->next; // 拿纸条去下一个包
}
// 所有包都查看过了 → 默默下班,不递东西
}
多条路,每一条都有 return,但只会经过一条路¶
int find(int a[], int n, int x)
{
for (int i = 0; i < n; i++)
if (a[i] == x)
return i; // 走这条路:找到了,下班
return -1; // 走那条路:没找到,下班
}
// 不管走哪条,一定会 return,不会出现管理员站门口不走的情况