美文网首页
if-else的魔咒

if-else的魔咒

作者: Nerrrrrd | 来源:发表于2016-09-18 16:03 被阅读0次

    顺序,分支,循环。
    程序的命脉。
    但是对于分支很多人喜欢写这种代码

    if (something) {
    ...
    }
    if (something) {
    ...
    }
    if (something) {
    ...
    }
    

    以前我也喜欢这么写,现在不了。
    why?因为程序很多时候就是流一样,一个条件分支应该使这个流越来越小,最终精确地实现目标。
    分支语句某种意义上就是过滤。
    把所有情况都分到各自的模块处理。
    而上述代码是很容易漏的,你应该这样写

    if (something) {
    ...
    }
    else if (something) {
    ...
    }
    else if (something) {
    ...
    } else {
    ...
    }
    

    这样你让自己考虑了所有情况。
    而且考虑下面这个场景:
    代码中,如果多个if语句并列,而其中两个if可能对同一个数据进行逻辑上矛盾的操作。
    比如一个if清空了数组,另一个却读取数组,在并列式的if语句中很可能因为条件没能正确划分产生这种问题
    而使用if...else不会产生这种问题。
    再者,使用并列的if你可能看到这样的语句

    if (something && aaa && bbb) {
    ...
    }
    if (something && aaa && eee) {
    ...
    }
    if (something && aaa && ccc) {
    ...
    }
    

    这么长的条件,你累不累?
    使用else的话可以把条件拆解

    if (something) {
    ...
    }
    else if (aaa) {
    ...
    }
    else if (ccc) {
    ...
    } else {
    ...
    }
    

    这样从逻辑上都会更加清晰,同时杜绝了条件考虑不全的情况。
    so,使用if时永远考虑加上else。

    相关文章

      网友评论

          本文标题:if-else的魔咒

          本文链接:https://www.haomeiwen.com/subject/qznerttx.html