编程小技巧

    返回首页    发表留言
本文作者:李德强
          技巧三:妙用return语句
 
 

        今天跟大家分享的小技巧为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语句在绝大多数情况下是可以省略的。这样做即简化了程序的逻辑,又使代码简洁明了。

 

        今天的小技巧你学会了吗?

 

    返回首页    返回顶部
#1楼  点苍双剑,剑气冲天  于 2017年05月17日09:47:51 发表
 
个人理解:逻辑处理的原则是由外到内,先大后小。

比如上面的例子,对于带参的函数,大的逻辑是参数是否合法,小的逻辑是,合法以后的各种操作。

  看不清?点击刷新

 

  Copyright © 2015-2023 问渠网 辽ICP备15013245号