【问题标题】:Difference between else if and else{if}else if 和 else{if} 的区别
【发布时间】:2014-04-23 22:28:37
【问题描述】:

这两者有实际区别吗?

第一:

if(condition1){
    // code 1
}else if(condition2){
    // code 2
}else if(condition3){
    // code 3
}else if(condition4){
    // code 4
}else if(condition5){
    // code 5
}else{
    // code 6
}

第二

if(condition1){
    // code 1
}else{
    if(condition2){
        // code 2
    }else{
        if(condition3){
            // code 3
        }else{
            if(condition4){
                // code 4
            }else{
                if(condition5){
                    // code 5
                }else{
                    // code 6
                }
            }
        }
    }
}

我问的是性能或更好的做法,甚至是可读性。

顺便说一句:我知道有 switch 句子,但我只是好奇。 :)

【问题讨论】:

  • 你说的是哪种语言?
  • 问题对于具有类似 elif 结构的语言来说是有意义的。因为它是你的例子,只是空格不同
  • @JanBerktold 不是一个特殊的,我知道编译器可能有所不同,我用 PHP、JS、JAVA、C++ 和 PYTHON 编写代码。因此,我尝试不使用特殊语法编写,以使问题更笼统。
  • 厄运金字塔!如果这些条件中的每一个都相对较长,并且/或者条件的数量是两倍甚至三倍,那么您最终会在编辑器中出现水平滚动(或自动换行),这可能(呃,将会)影响可读性。您真的不应该从性能的角度来看待它,除非您实际上正在处理对性能敏感的案例或问题。

标签: performance if-statement readability


【解决方案1】:

大括号标记复合语句或块,即多个语句。在您的示例中,只有一个语句,因此可以跳过大括号,就是这样。除了那些对缩进有很大争论的人之外,差异没有实际价值。

【讨论】:

    【解决方案2】:

    不能说在每种语言中使用一种方式比另一种方式更有效。

    但是,如果您使用的语言有任何差异,那么这些差异应该是不明显的。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-05-11
      • 1970-01-01
      相关资源
      最近更新 更多