有什么理由在方法的第二行中使用"return"吗?

Is there any reason to use the 'return' in the second line in the method ?

本文关键字:二行 return 理由 什么 方法      更新时间:2023-10-16

我有这样的代码,我们可以用两种方式编写

第一路

void func(int val)
{
     if(val == 0)
          return;
     // Do something ...
}

第二路

void func(int val)
{
     if(val != 0)
     {
          // Do something ...
     }          
}

问题:

有理由使用第一种方式吗?使用第一种方式(在C++或C#中)有什么优势吗

使用第一种方法的主要原因是减少源文件中的嵌套。

请参阅反转"if"语句以减少嵌套。

基本上,当"//做某事…"是大量的代码。

想象一下,有不止一个条件,看看这个:

if (...)
{
  if (...)
  {
     if (...)
     {
        if (...)
        {
           if (...)
           {
             ...
           }
        }
     }
  }
}

这个:

if (!...)
  return;
if (!...)
  return;
if (!...)
  return;
if (!...)
  return;
if (!...)
 ...

我认为,第二个更便于阅读
如果有一个或两个条件,差异是微不足道的。

是的,前面的回答中提到了这些优点。由于它在C++中被标记,因此在使用First Way的情况下,应注意释放分配的内存。

例如,可能有像这样的错误代码

void func(int val)
{
     Foo *obj = new Foo();
     if(val == 0)
          return;
     // Do something ...
    delete obj;        // Possible Memory leak
}

没有区别-是使用其中一个还是另一个完全取决于您对其中一个的主观偏好,受可读性、可理解性等因素的影响。

  • 如果你想在定义的值上快速退出,那么在之前返回应该更好
  • 但如果这种情况很少见,那么最好直接处理好数据

根据您使用的语言,对性能的影响应该更大,或者微不足道。

如果是为了清楚起见,那么在条件良好之后调用make一些函数。有些零件管理不同的案例,有些零件处理它。

应通过这种方式提高可维护性和可读性。

如果您以第一种方式调用,那么它就不会运行其余的东西。因为它直接返回。但如果使用第二种方式,则中的代码将运行。

Void方法并不总是需要return语句。但您可以在战略位置使用"return",以避免在遇到退出条件时执行不必要的语句。