使用If,ElseIf,ElseIf比使用If,If,If更好吗?

PIC*_*ain 4 if-statement

使用之间真的有什么区别吗?

If(this)
{
}
Else If(that)
{
}
Else
{
}
Run Code Online (Sandbox Code Playgroud)

或使用,

If(this)
{
}
If(that)
{
}
Else
{
}
Run Code Online (Sandbox Code Playgroud)

?一个人执行得更快吗?编译器或架构有什么不同吗?

Mar*_*off 19

不同之处在于this-block和that-block 的内容可以以第二种形式执行,而第一种形式最多允许执行其中一种形式.

比较这两个Python代码段:

x = 10

if x > 5:
    print "x larger than 5"
elif x > 1:
    print "x larger than 1"
else:
    print "x not larger than 1"

# output: x larger than 5
Run Code Online (Sandbox Code Playgroud)

x = 10

if x > 5:
    print "x larger than 5"
if x > 1:  # not using else-if anymore!
    print "x larger than 1"
else:
    print "x not larger than 1"

# output line 1: x larger than 5
# output line 2: x larger than 1
Run Code Online (Sandbox Code Playgroud)

正如其他人所提到的,你通常不应该担心这些变化之间的表现,因为你应该关注正确性.但是,由于你问...其他条件相同,第二种形式会更慢,因为必须评估第二种条件.

但除非你已经确定以这种形式编写的代码是一个瓶颈,否则考虑优化它并不值得你努力.在从第一种形式切换到第二种形式时,您放弃跳出第一个if语句并获得对第二个条件的强制评估.根据语言的不同,这可能是一个非常微不足道的差异.