我正在编写一些必须检查值的非常长的函数,如果找到了特定的模式,则返回true
。我执行if
检查并在一个条件失败后返回false
,从不使用此示例中的else
部分
if (a < 0) {
return false;
}
// code
if (b < 0) {
return false;
}
// code
if (a + b / c > d) {
return false;
}
// code
这是正确的做法还是我应该使用else
?性能有什么不同,还是仅仅是可读性问题?
if (a < 0) {
return false;
} else {
// code
if (b < 0) {
return false;
} else {
// code
if (a + b / c > d) {
return false;
} else {
// code
}
}
}
答案 0 :(得分:2)
我认为您提供的示例仅用于演示目的。但是,一般来说,只是可读性问题,编译器进行优化时没有性能差异。我个人更喜欢你回归的方式。如果你有更长的逻辑,那么理解某些无效的场景会更具可读性。并且比嵌套的if / else块更干净。只是我的意见。
答案 1 :(得分:-1)
你的初始如果没有其他是非常正确的但是 这个:可读性和效率都很短
if (a < 0 && b < 0 && (a + b)/ c > d)
{
return false;
} else
{
答案 2 :(得分:-1)
如果不需要其他,那么我将使用下面的代码。如果需要,那么我会更喜欢DeshDeep提到的答案。
我更喜欢,因为代码行数较少,但这取决于个人选择。
if (a < 0 || b <0 || (a + b / c > d)) {
return false;
}