在代码审查期间,一位高级开发人员对我在代码中进行的一些嵌套发表了评论。他建议我设置一个 bool 值,这样我就不会有超过一层的嵌套。我认为我的代码更具可读性,但想获得其他开发人员对此的意见。哪种风格更好?他本能地厌恶嵌套是否成立?
下面是一些简化的代码示例。
嵌套:
If(condition1)
{
If(condition2)
{
if(condition3)
{
return true;
}
else
{
log("condition3 failed");
}
else
{
log("condition2 failed")
}
}
else
{
log("condition1 failed")
}
return false;
或
bool 驱动:
bool bRC = false;
bRC = (condition1);
if(brc)
{
bRC = (condition2);
}
else
{
log("condition1 failed");
return false;
}
if(bRC)
{
bRC = (condition3);
}
else
{
log("condition2 failed");
return false;
}
if(bRC)
{
return true;
}
else
{
log("condition3 failed");
return false;
}
最佳答案
我更喜欢你的,但我可能会这样做:
if (condition1 && condition2 && condition3)
{
return true;
}
else if (!condition1)
{
log("condition1 failed");
}
else if (!condition2)
{
log("condition2 failed");
}
else
{
log("condition3 failed");
}
return false;
如果条件是复杂的表达式,那么我可能会在计算 if 语句之前将表达式分配给适当命名的变量,以避免重新计算每个 if 中的值。
这是假设正常模式是所有条件都为真,因此您希望首先进行检查。如果正常模式是一个或多个条件为假,那么我会重新排序并依次检查每个否定,如果所有检查都失败,则简单地返回 true。这也将消除使用临时变量来代替复杂表达式的需要。
关于coding-style - 哪种编码风格更好?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1641156/