If statement 使用If,ElseIf,ElseIf比使用If,If,If好吗?
使用If statement 使用If,ElseIf,ElseIf比使用If,If,If好吗?,if-statement,If Statement,使用 If(this) { } Else If(that) { } Else { } 或使用, If(this) { } If(that) { } Else { } ?? 执行速度更快吗?编译器或体系结构有什么不同吗 这个-块的内容和那个-块的内容都可以在第二种形式中执行,而第一种形式最多允许执行其中一种 比较以下两个Python代码片段: x = 10 if x > 5: print "x larger than 5" elif x > 1: print "x
If(this)
{
}
Else If(that)
{
}
Else
{
}
或使用,
If(this)
{
}
If(that)
{
}
Else
{
}
??
执行速度更快吗?编译器或体系结构有什么不同吗 这个-块的内容和那个-块的内容都可以在第二种形式中执行,而第一种形式最多允许执行其中一种 比较以下两个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
及
正如其他人所提到的,您通常不应该关注这些变化之间的性能,而应该关注正确性。然而,既然你问。。。在所有其他条件相同的情况下,第二种形式将较慢,因为必须计算第二种条件
但是,除非您已经确定以这种形式编写的代码是一个瓶颈,否则您根本不值得考虑对其进行优化。在从第一种形式切换到第二种形式时,放弃跳出第一个if语句,并返回对第二种条件的强制求值。根据语言的不同,这可能是一个可以忽略不计的差异。是的,在第一个示例中,如果该值为true,而该值为true,则只执行第一个代码块,而在第二个示例中,它们都将执行 它们不是等价的是 在第一种情况下:如果当前条件失败,控制流将只检查下一个条件,但在第二种情况下,它将检查遇到的所有条件 在第一种情况下,只有在前面的所有条件都不成立时,才会执行Else部分。在第二种情况下,只有当最后一个if条件失败时,它才起作用。
如果“this”和“that”都是真的,那么代码的两部分都会产生其他结果。在第一个代码中。 它将检查如果,如果此为真,则执行其主体, 如果为假,那么将 检查ELSEIF如果执行其主体的为真, 如果为假,那么将 执行其他的主体 第二个代码 它将检查如果,如果此为真,则执行其主体, 如果错误,什么也不做。 检查第二个如果执行其主体的是否为真, 如果为假,那么将
执行else的主体。对,两者在观察上是等价的,只有
这个和那个是互斥的。作为旁注,由于编译器如何为两者生成代码,可能会对性能产生影响。对于像这样的语言,如果可能的话,使用分派表编译if
块,使用else if
可以提高性能。这是一个基本的编程问题,你可以在c书第4章找到答案。你试过运行你的代码吗?“执行得更快吗?”是您在决定使用哪个构造时最不应该担心的事情。首先要考虑的是正确性——正如下面的许多优秀答案所解释的那样,它们会做不同的事情,所以选择一个给出正确答案的#2是明确性:当有两个有效选项时,选择更容易阅读和理解的选项。假设我说:“如果商店有可乐,给我买一瓶可乐。如果他们有百事可乐,给我买一瓶百事可乐。如果他们有山露,给我买一瓶山露。”现在假设商店有三种苏打水。你应该买什么?根据我的逻辑问题:所有三个。在第二种情况下,如果第一个if为真,第二个if为假,则可以计算else语句。
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