繁体   English   中英

条件语句的可读性[关闭]

[英]Readability in conditional statements [closed]

我想要一个 function 来检查一些条件并返回结果。 条件的数量很可能会增加。

if/else语句的顺序应该是什么才能使其最容易理解/阅读和维护? 这种情况有风格指南吗?

以下哪个选项最好? 请提供有关以下选项的可读性和可维护性以及任何其他建议的事实、参考和/或特定专业知识:

bool isReady_1()
{
    if (isCorrupted()) {
        return false;    
    }

    if (isDisconnected()) {
        return false;
    }

    return isInitialized();
}

bool isReady_2()
{
    if (isCorrupted()) {
        return false;    
    }  
    else if (isDisconnected()) {
        return false;
    }
    else if (isInitialized()) {
        return true;
    }
    else {
        return false; 
    }
}

bool isReady_3()
{
    return !isCorrupted() && !isDisconnected() && isInitialized();
}

对于 C++,我推荐Google 的 C++ 样式指南 基于此并盯着功能,我会说isReady_1()是给定选项中最好的。

该指南提到,“如果这增强了可读性,则可以将简短的条件语句写在一行上。只有当行很简短并且语句不使用 else 子句时,您才可以使用它。” 并提供一个例子。

根据该建议,这是“增强可读性”的另一种可能性:

bool isReady_4() {
    if (isCorrupted()) return false;
    if (isDisconnected()) return false;
    return isInitialized();
}

乍看之下, isReady_3() ,值得商榷,“可读”,但它确实有一些挫折。 随着您添加条件,可读性会降低,并且代码审查可能会变得痛苦。 每个条件都在自己的行中,当您添加代码时,如果您正在添加、删除或修改任何条件,将会非常明显。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM