Vb.net 如果我没有';你不需要吗?

Vb.net 如果我没有';你不需要吗?,vb.net,if-statement,Vb.net,If Statement,我知道这是一个可能已经回答过的愚蠢问题,但我找不到一个简单的搜索方法。我的问题是,我应该在不需要的时候使用“else”吗?使用VB.NET Function IsHappy(hasBeer As Boolean) If hasBeer = True Then Return "Happy" msgbox("I'm sad") Return "Sad" End Function 或者 对我来说,它们看起来是一样的,只是第一个代码看起来少了一点,但是第

我知道这是一个可能已经回答过的愚蠢问题,但我找不到一个简单的搜索方法。我的问题是,我应该在不需要的时候使用“else”吗?使用VB.NET

Function IsHappy(hasBeer As Boolean)
        If hasBeer = True Then Return "Happy"
        msgbox("I'm sad")
        Return "Sad"
End Function
或者

对我来说,它们看起来是一样的,只是第一个代码看起来少了一点,但是第二个代码更清晰,尽管更详细。有没有理由选择其中一个而不是另一个

编辑:删除了只返回hasBeer的明显捷径,使其稍微复杂一些

为了澄清这一点,我只是想弄清楚,如果你不这么做,那么当if将提前退出时,是否有很好的理由使用else语句。这只是一种没有明确偏好的风格选择吗?

这取决于你的喜好

在这里,我将使用:

在这里,我将使用
If
Else

Function IsHappy(hasBeer As Boolean) As Boolean
    If hasBeer Then
        ' Do some side effects
        ...

        Return True
    Else
        ' Do other side effects
        ...

        Return False
    End If
End Function
在您的示例中,我只使用

Function IsHappy(hasBeer As Boolean) As Boolean
    Return hasBeer
End Function
视情况而定

在这里,我将使用:

在这里,我将使用
If
Else

Function IsHappy(hasBeer As Boolean) As Boolean
    If hasBeer Then
        ' Do some side effects
        ...

        Return True
    Else
        ' Do other side effects
        ...

        Return False
    End If
End Function
在您的示例中,我只使用

Function IsHappy(hasBeer As Boolean) As Boolean
    Return hasBeer
End Function

我知道你的hasBeer标志只是一个例子——逻辑可能要复杂得多


我更喜欢第一种选择,因为视觉上的混乱更少。我可能会在最后一行之前添加空格-这非常清楚,任何达到这一步的路径都返回false。

我知道您的hasBeer标志只是一个示例-逻辑可能要复杂得多


我更喜欢第一种选择,因为视觉上的混乱更少。我可能会在最后一行之前加上空格——这非常清楚地表明,任何走到这一步的路径都返回false。

冗长本身并不是问题。在性能相同的情况下,在实际应用程序中,清晰性几乎总是胜过聪明的代码。

冗长本身并不是问题。在性能相同的情况下,在现实应用程序中,清晰性几乎总是胜过聪明的代码。

为什么?返回hasBeer并继续。您应该定义所有可能的代码路径。但是在这里,你可以简单地返回hasBeer,当hasBeer不是真的或假的时候呢?添加另一个else分支以处理此情况。嗯,就像在以返回结尾的分支后添加一个
else
一样有意义。每个定义的布尔值是真是假,除非你严重干扰了逻辑。@Steve嗯,就像在以返回结尾的分支后添加一个
else
一样有意义。为什么?返回hasBeer并继续。您应该定义所有可能的代码路径。但是在这里,你可以简单地返回hasBeer,当hasBeer不是真的或假的时候呢?添加另一个else分支以处理此情况。好的,就像在以返回结尾的分支后添加一个
else
一样有意义。每个定义的布尔值是真是假,除非你严重干扰了逻辑。@Steve好的,就像在以返回结尾的分支后添加一个
else
一样有意义。