【发布时间】:2014-03-09 22:01:54
【问题描述】:
使用嵌套的 if 语句和使用一个有很多参数的长 if 语句有区别吗?
例如
if ( var1 == var2 && var3 == var4 )
{
//do something
}
或
if ( var1 == var2 )
{
if ( var3 == var4 )
{
//do something
}
}
我想知道这样做有什么不同吗?
谢谢
【问题讨论】:
-
第二种格式的灵活性更大。假设只有当 var1 == var2 时才应检查另一个条件。如果您使用第一种格式,则必须重新检查 var1 == var2。
-
在许多语言中,这两个代码都会被编译成相同的二进制文件。同样在大多数情况下,不需要创建额外的缩进。我会在这种形式中使用嵌套的
if,例如,如果有一个仅取决于var3 == var4条件的else语句。 -
一切都与可读性和编码风格有关。尽量保持代码简单易读。在性能方面,由于lazy evaluation,这两个语句是相等的。
-
该问题既是基于意见的问题,也是语言标签垃圾邮件的示例。在一种语言中正确的(例如执行优化)在另一种语言中不一定正确。