使用
之间真的有什么区别吗?If(this)
{
}
Else If(that)
{
}
Else
{
}
或使用,
If(this)
{
}
If(that)
{
}
Else
{
}
? 一个人执行得更快吗?编译器或架构有什么不同吗?
答案 0 :(得分:19)
this
- 块和that
- 块的内容可以两者以第二种形式执行,但第一种形式允许在大多数要执行的人。
比较这两个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
和
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
正如其他人所提到的,您通常不应该关注这些变体之间的表现,因为您应该关注正确性。但是,由于您要求...其他所有内容相同,因此第二种形式将会变慢,因为必须评估第二个条件。
但除非您确定以此形式编写的代码是瓶颈,否则即使认为优化它也不值得您努力。在从第一种形式切换到第二种形式时,您放弃跳出第一个if语句并获得对第二个条件的强制评估。根据语言的不同,可能的差异非常小。
答案 1 :(得分:4)
是的,在您的第一个示例中,如果此计算结果为true且计算结果为true,则仅执行第一个代码块,而在第二个示例中,它们都将执行。
它们不等同
答案 2 :(得分:3)
是
在第一种情况下:如果当前条件失败,控制流将仅检查下一个条件,但在第二种情况下,它将检查遇到的所有条件。
在第一种情况下,只有在所有先前条件都不成立的情况下才会执行Else部分。仅在最后一个If条件失败时才在第二种情况下。
答案 3 :(得分:1)
它有所作为。
如果“this”和“that”都是真的,那么代码的两部分都会产生其他的东西。
答案 4 :(得分:0)
在第一段代码中 它将检查 IF ,如果此为真,则执行其正文, 如果是假的那么 检查 ELSEIF ,如果 为真,执行其正文, 如果是假的那么 执行其他主体。
第二个代码 它将检查 IF ,如果此为真,则执行其正文, 如果假不做任何事。 检查第二个 IF ,如果 为真,执行其正文, 如果是假的那么 执行其他主体。