当我不需要时,我应该使用其他吗?

时间:2016-06-16 18:05:40

标签: vb.net if-statement

我知道这是一个可能已经回答的愚蠢问题,但我找不到容易搜索的问题。我的问题是我应该使用"否则"我什么时候不需要?使用VB.NET ...

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

或者...

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

这些看起来和我一样,只是第一个看的代码要少一些,但第二个看起来更清晰,但更详细。是否有理由选择其中一个而不是另一个?

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

为了澄清,我只是试图弄清楚,如果你没有在IF退出早期时,是否有充分的理由使用else语句。它只是一种没有明确偏好的风格选择吗?

3 个答案:

答案 0 :(得分:2)

取决于。

在这里,我使用early exit

Function IsHappy(hasBeer As Boolean) as Boolean
    If hasBeer Then
        Return True
    End If

    ' Complicated logic to determine whether another reason
    ' for being happy can be determined
    ...

    Return False   ' No reason found
End Function

在这里,我使用IfElse

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

答案 1 :(得分:0)

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

我更喜欢第一种选择,因为视觉混乱程度较低。我可能会在最后一行之前添加空格 - 这使得很明显,任何获得此功能的路径都会返回false。

答案 2 :(得分:0)

详细程度本身并不是一个问题。性能相同,清晰度几乎总是胜过现实应用中的聪明代码。