小技巧让你的 if else 看起来更漂亮

刚看到一个提问帖: 《如果程序中出现多层嵌套的 if...else...语句,如何重构可使程序逻辑变得更为清晰易读?》,因回答篇幅比较大,单独开个帖子答一下。

个人喜好代码风格不一样,下面只是我认为好的代码风格,不喜勿喷。如果有其他好的技巧,欢迎分享补充。

技巧一

删除 else

如:

function test($arg){
    if($arg == 'foobar'){
        return true;
    }else{
        return false;
    }}

尽量写成这样

function test($arg){
    if($arg == 'foobar'){
        return true;
    }

    return false;}

优先将代码量少,可使流程中断的代码块(return, throw excetion, continue ...)放到 if 中, 提前中断代码。

技巧二

拆分为多个函数

如果整个 if else 中的代码比较多,或者 if 与 else 中带代码不会导致后面的判断流程中断,并且还有 if else 之外的代码,将就 if else 中的代码拆分为多个函数。

if($age > 18){
    doSomeThingA();
    doSomeThingB();
    doSomeThingC();}else{
    doSomeThingD();
    doSomeThingE();}

这种方式需要将函数名取的尽量清晰易懂,不要嫌长。

技巧三

罗列规则式的写代码

多层 if 嵌套的语法,把他写成线性的,就像写规则一样将其一条条罗列出来

如:

function match($age, $salary, $pretty){
    if($age > 18){
         // do some thing A;        if($salary > 5000){
            // do some thing B;            if($pretty == true){
                return true;
            }
        }
    }

    return false;}

改写成这样是不是清晰多了?

function match($age, $salary, $pretty){
    if($age < 18){
        return false;
    }

    // do some thing A;
    if($salary < 5000){
        return false;
    }

    // do some thing B;
    return $pretty == true;}

总结

少用 else , 提前中断(return)!!!

少用 else , 提前中断(return)!!!

少用 else , 提前中断(return)!!!

重要的事情说三遍!

原文发布于微信公众号 - php(phpdaily)

原文发表时间:2015-09-22

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏码云1024

c++ 虚继承

3087
来自专栏take time, save time

你所能用到的数据结构(七)

十、装配火车的乐趣       国庆放假结束了,第一天真是不想来上班啊,接着国庆之前的吧,上一篇写的是利用数组实现堆栈的结构,使用数组的两个致命的弱点是大小必须...

3298
来自专栏数据结构与算法

P2776 [SDOI2007]小组队列

题目背景 嘛,这道非常简单的给大家提供信心的省选题洛谷居然没有! 这么简单的题怎么可以没有! 给大家提升士气是义不容辞的责任! 所以我就来补一下啦.. 值得一提...

3058
来自专栏阿杜的世界

《Scala程序设计》阅读书摘

JVM上的语言越来越多了,从前几年的groovy、Scala和Clojure,现在又听说一门Kotlin。对于前三种语言,groovy算是JVM平台上的动态脚本...

712
来自专栏企鹅号快讯

c51单片机编程要点总结

c51单片机编程要点总结 1、头文件:#include (我用的是 STC 89C54RD+) 2、预定义:sbit LED = P1^0// 定义 P1 口的...

1807
来自专栏葡萄城控件技术团队

当心那些有歧义的命名

关键点 “别人还能把这个名字理解成什么意思?”通过不断的问自己这个问题来积极检查每一个命名。 事实上,这种富有创造性的、不断尝试“错误理解”的方法,能够有...

1716
来自专栏Kirito的技术分享

JAVA 拾遗--eqauls 和 hashCode 方法

缘起—lombok 引发的惨案 Lombok 是一种 Java™ 实用工具,可用于帮助开发人员消除 Java 的冗长,尤其是对于简单的 Java 对象(POJ...

3307
来自专栏三木的博客

插入法排序

何谓算法?算法就是计算机解决问题的方法和步骤。之所以强调计算机三个字,是因为计算机处理问题的方式和我们人类解决问题的方式有所不同。比如,在电视剧《宫》里看到一个...

1805
来自专栏java一日一条

由字符串反转(使用递归)引申出来一道Java面试题

如何面试一个从事编程工作的开发人员既困难又乏味,幸好还有很多值得参考的指南,比如:《Joel Guerilla Guide to interviewing》,...

662
来自专栏编程

C语言干货,新手入门必看,基础知识大汇总!

习C语言始终要记住“曙光在前头”和“千金难买回头看”,“千金难买回头看”是学习知识的重要方法,就是说,学习后面的知识,不要忘了回头弄清遗留下的问题和加深理解前面...

1845

扫描关注云+社区