Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/fsharp/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
If statement 使用If,ElseIf,ElseIf比使用If,If,If好吗?_If Statement - Fatal编程技术网

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