今天跟大家分享的小技巧为return语句的巧妙用法。有朋友会问:return语句不就是函数中的返回值吗?不错,我们在编程时使用常常使用return来返回一个函数的返回值,但它还有另一个用法,即当程序执行至return语句后,此函数程序执行完毕,return语句后的程序不再执行。那么这个特性有什么用呢?我们还是先来看看段示例代码:
void myfunction(int *p)
{
if (p == NULL)
{
printf("Error!\n");
}
else
{
printf("%d\n,", *p);
}
}
在这个函数中有一个处理逻辑:当p为空时显示一个Error信息,当p不为空时显示出*p的值。这段代码本身并没有任何问题,但我们来看一下使用return语句来改写的这段代码:
void myfunction(int *p)
{
if (p == NULL)
{
printf("Error!\n");
return;
}
printf("%d\n,", *p);
}
有没有注意到这样一个事实,这段程序的逻辑是优先处理函数中的异常问题,并直接使用return语句返回,不再执行后续的代码。而正常功能代码则无需再做逻辑判断。这里的函数体中代码逻辑比较简单,return语句的优势还没有完全体现出来,我们再来看一个例子:
int matrix_display(s_Matrix* matrix)
{
if (matrix == NULL)
{
return -1;
}
if (matrix->v == NULL)
{
return -1;
}
if (matrix->m <= 0 || matrix->n <= 0)
{
return -1;
}
for (int i = 0; i < matrix->m; i++)
{
for (int j = 0; j < matrix->n; j++)
{
printf("%+e\t\t", matrix->v[i * matrix->n + j]);
}
printf("\n");
}
printf("\n");
return 0;
}
使用return语句优先处理程序中所有的异常情况,然后return,这样处理后续的正常情况就不需要再做判断处理了,也就是说在大多数情况下,通常与if语句成对出现else语句在绝大多数情况下是可以省略的。这样做即简化了程序的逻辑,又使代码简洁明了。
今天的小技巧你学会了吗?
Copyright © 2015-2023 问渠网 辽ICP备15013245号