算法艺术(二):判断(if)的使用策略

一段时间的忙碌,还是要腾出点时间来继续算法艺术系列。
对于一个程序员来说,用得最多的可能就是if语句来,往往在很多项目中都会发现里面充斥着大量的判断语句。繁琐的判断让人有时候让人读起来苦涩不堪,有一些可以说是一塌

糊涂。

1, 尽快结束 if语句
例如下面这个JavaScript语句,看起来就很恐怖:
function findShape(flags, point, attribute, list) {
    if(!findShapePoints(flags, point, attribute)) {
       if(!doFindShapePoints(flags, point, attribute)) {
            if(!findInShape(flags, point, attribute)) {
                if(!findFromGuide(flags,point) {
                    if(list.count() > 0 && flags == 1) {
                          doSomething();
                    }
                }
            }
       }
    }  
  }

但如果这么写就好看得多:

function findShape(flags, point, attribute, list) {
   if(findShapePoints(flags, point, attribute)) {
        return;
    }

    if(doFindShapePoints(flags, point, attribute)) {
        return;
    }

    if(findInShape(flags, point, attribute)) {
        return;
    }

    if(findFromGuide(flags,point) {
        return;
    }

    if (!(list.count() > 0 && flags == 1)) {
        return;
    }
    doSomething();

}

或者:
function findShape(flags, point, attribute, list) {
   if(!findShapePoints(flags, point, attribute)
    &&!doFindShapePoints(flags, point, attribute)
    &&!findInShape(flags, point, attribute)
    &&!findFromGuide(flags,point)
    &&(list.count() > 0 && flags == 1)) {
        doSomething();
    }
}


2, 如果只是简单的布尔运算(逻辑运算),不要使用if语句
function isStringEmpty(str){
    if(str === "") {
        return true;
    }
    else {
        return false;
    }
}

可以写为:
function isStringEmpty(str){
    return (str === "");
}

3,效率判断优先
效率优先即将频繁使用的判断优先进行。

例如,a=1000出现的可能是90以上,那么在下面的片段中就应该优先判断。
如过用下面这段代码,那么判断次数显然多出很多
function isOk(a){
    if(a<0) return -1;
    else if(a>999&&a<100) return 0;
    return -1;
}

我们可以改为如下代码:

function isOk(a){
    if(a>1000) return 1;
    else if(a>999&&a<100) return 0;
    return -1;
}



4,在判断中使用&&,||,!,&,|,移位等技巧
有时候判断中可以技巧性的使用逻辑或者以为符号,优化你的代码,提高你的效率。


 

如果大家有什么问题的可以去知识问答找找答案。


女人 _知识问答
汽车_知识问答
明星_知识问答
世界杯_知识问答
股票_知识问答
_电脑、通讯、互联网_分类信息_知识问答
IT业界_电脑、通讯、互联网_分类信息_知识问答
安全与防护_电脑、通讯、互联网_分类信息_知识问答
操作系统_电脑、通讯、互联网_分类信息_知识问答
电脑常识_电脑、通讯、互联网_分类信息_知识问答
电子数码_电脑、通讯、互联网_分类信息_知识问答
多媒体_电脑、通讯、互联网_分类信息_知识问答
互联网_电脑、通讯、互联网_分类信息_知识问答
计算机技术_电脑、通讯、互联网_分类信息_知识问答
软件_电脑、通讯、互联网_分类信息_知识问答
软件开发_电脑、通讯、互联网_分类信息_知识问答
手机_电脑、通讯、互联网_分类信息_知识问答
通讯_电脑、通讯、互联网_分类信息_知识问答
新浪产品_电脑、通讯、互联网_分类信息_知识问答
硬件_电脑、通讯、互联网_分类信息_知识问答
_演艺、艺术、娱乐_分类信息_知识问答
VCD与DVD_演艺、艺术、娱乐_分类信息_知识问答
博彩_演艺、艺术、娱乐_分类信息_知识问答
电视_演艺、艺术、娱乐_分类信息_知识问答
电影_演艺、艺术、娱乐_分类信息_知识问答
动漫_演艺、艺术、娱乐_分类信息_知识问答
广播_演艺、艺术、娱乐_分类信息_知识问答
美术与摄影_演艺、艺术、娱乐_分类信息_知识问答
谜语_演艺、艺术、娱乐_分类信息_知识问答
明星俱乐部_演艺、艺术、娱乐_分类信息_知识问答
魔术与杂技_演艺、艺术、娱乐_分类信息_知识问答
脑筋急转弯_演艺、艺术、娱乐_分类信息_知识问答
文化艺术常识_演艺、艺术、娱乐_分类信息_知识问答
舞蹈_演艺、艺术、娱乐_分类信息_知识问答
戏剧_演艺、艺术、娱乐_分类信息_知识问答
演出与展览_演艺、艺术、娱乐_分类信息_知识问答
音乐_演艺、艺术、娱乐_分类信息_知识问答
幽默与滑稽_演艺、艺术、娱乐_分类信息_知识问答
运气与星座_演艺、艺术、娱乐_分类信息_知识问答
_游戏_分类信息_知识问答
UT新手卡中心_游戏_分类信息_知识问答
单机游戏_游戏_分类信息_知识问答
电视游戏_游戏_分类信息_知识问答
电子竞技_游戏_分类信息_知识问答
棋牌游戏_游戏_分类信息_知识问答
手机游戏_游戏_分类信息_知识问答
网络游戏_游戏_分类信息_知识问答
网页游戏_游戏_分类信息_知识问答
新浪2008游戏运动会_游戏_分类信息_知识问答
新浪网络游戏_游戏_分类信息_知识问答
新浪网页游戏_游戏_分类信息_知识问答
新浪游戏产品_游戏_分类信息_知识问答
休闲小游戏_游戏_分类信息_知识问答
游戏工具_游戏_分类信息_知识问答
游戏相关产品_游戏_分类信息_知识问答
游戏业界_游戏_分类信息_知识问答
_运动与爱好_分类信息_知识问答
2008奥运_运动与爱好_分类信息_知识问答
冬季运动_运动与爱好_分类信息_知识问答
花鸟虫草_运动与爱好_分类信息_知识问答
陆地竞赛_运动与爱好_分类信息_知识问答
其它爱好_运动与爱好_分类信息_知识问答
其它运动_运动与爱好_分类信息_知识问答
棋牌运动_运动与爱好_分类信息_知识问答
球类_运动与爱好_分类信息_知识问答
全民健身运动_运动与爱好_分类信息_知识问答
全运会_运动与爱好_分类信息_知识问答
收藏_运动与爱好_分类信息_知识问答
水上运动_运动与爱好_分类信息_知识问答
武术搏击_运动与爱好_分类信息_知识问答
野外活动_运动与爱好_分类信息_知识问答
运动会与比赛_运动与爱好_分类信息_知识问答
运动用品_运动与爱好_分类信息_知识问答
_健康与医学_分类信息_知识问答
保健_健康与医学_分类信息_知识问答
大内科_健康与医学_分类信息_知识问答
大外科_健康与医学_分类信息_知识问答
妇儿科室_健康与医学_分类信息_知识问答
疾病_健康与医学_分类信息_知识问答
减肥_健康与医学_分类信息_知识问答
男科_健康与医学_分类信息_知识问答
人体常识_健康与医学_分类信息_知识问答
食品安全与营养_健康与医学_分类信息_知识问答
体检_健康与医学_分类信息_知识问答
五官科室_健康与医学_分类信息_知识问答
心理健康_健康与医学_分类信息_知识问答
药品_健康与医学_分类信息_知识问答
医院_健康与医学_分类信息_知识问答
应急治疗_健康与医学_分类信息_知识问答
中医_健康与医学_分类信息_知识问答
_家庭与生活_分类信息_知识问答
宠物_家庭与生活_分类信息_知识问答
家居环境_家庭与生活_分类信息_知识问答
家庭关系_家庭与生活_分类信息_知识问答
交友_家庭与生活_分类信息_知识问答
结婚_家庭与生活_分类信息_知识问答
离婚_家庭与生活_分类信息_知识问答
礼节礼仪_家庭与生活_分类信息_知识问答
恋爱_家庭与生活_分类信息_知识问答
美容_家庭与生活_分类信息_知识问答
烹饪美食_家庭与生活_分类信息_知识问答
生活百科_家庭与生活_分类信息_知识问答
衣着时尚_家庭与生活_分类信息_知识问答
移民_家庭与生活_分类信息_知识问答
育儿_家庭与生活_分类信息_知识问答
子女教育_家庭与生活_分类信息_知识问答
_商业经济_分类信息_知识问答
ERP_商业经济_分类信息_知识问答
保险_商业经济_分类信息_知识问答
财务与税务_商业经济_分类信息_知识问答
创业_商业经济_分类信息_知识问答
股票_商业经济_分类信息_知识问答
广告与销售_商业经济_分类信息_知识问答
基金_商业经济_分类信息_知识问答
金融投资_商业经济_分类信息_知识问答
贸易_商业经济_分类信息_知识问答
期货_商业经济_分类信息_知识问答
商业文书_商业经济_分类信息_知识问答
外汇_商业经济_分类信息_知识问答
信托_商业经济_分类信息_知识问答
银行_商业经济_分类信息_知识问答
债券_商业经济_分类信息_知识问答
职业与招聘_商业经济_分类信息_知识问答
_购物_分类信息_知识问答
百货_购物_分类信息_知识问答
电脑与数码_购物_分类信息_知识问答
购物请教_购物_分类信息_知识问答
化妆品_购物_分类信息_知识问答
家电_购物_分类信息_知识问答
家居装饰_购物_分类信息_知识问答
礼品_购物_分类信息_知识问答
生活卫厨_购物_分类信息_知识问答
食品_购物_分类信息_知识问答
首饰钟表_购物_分类信息_知识问答
文化产品_购物_分类信息_知识问答
消费者评价_购物_分类信息_知识问答
衣服_购物_分类信息_知识问答
运动用品_购物_分类信息_知识问答
_旅游与交通_分类信息_知识问答
国内旅游_旅游与交通_分类信息_知识问答
海外旅游_旅游与交通_分类信息_知识问答
护照签证_旅游与交通_分类信息_知识问答
交通常识_旅游与交通_分类信息_知识问答
交通工具_旅游与交通_分类信息_知识问答
旅行常识_旅游与交通_分类信息_知识问答
旅游服务_旅游与交通_分类信息_知识问答
特殊旅游_旅游与交通_分类信息_知识问答
_社会与文化_分类信息_知识问答
博物馆_社会与文化_分类信息_知识问答
传统文化_社会与文化_分类信息_知识问答
法律_社会与文化_分类信息_知识问答
节假日_社会与文化_分类信息_知识问答
军队武器_社会与文化_分类信息_知识问答
民俗传统_社会与文化_分类信息_知识问答
民族_社会与文化_分类信息_知识问答
社会话题_社会与文化_分类信息_知识问答
社会团体_社会与文化_分类信息_知识问答
文学_社会与文化_分类信息_知识问答
宗教_社会与文化_分类信息_知识问答
_教育_分类信息_知识问答
报考与学校信息_教育_分类信息_知识问答
出国与留学_教育_分类信息_知识问答
高考_教育_分类信息_知识问答
考试与资格证_教育_分类信息_知识问答
考研_教育_分类信息_知识问答
论文与报告_教育_分类信息_知识问答
体育_教育_分类信息_知识问答
外语_教育_分类信息_知识问答
校园生活_教育_分类信息_知识问答
新浪网络学院_教育_分类信息_知识问答
学习教材_教育_分类信息_知识问答
远程教育_教育_分类信息_知识问答
职业培训_教育_分类信息_知识问答
中考_教育_分类信息_知识问答
专业介绍_教育_分类信息_知识问答
作业帮助_教育_分类信息_知识问答
_科学技术与学问_分类信息_知识问答
标准_科学技术与学问_分类信息_知识问答
工程技术_科学技术与学问_分类信息_知识问答
人文与社会科学_科学技术与学问_分类信息_知识问答
行业_科学技术与学问_分类信息_知识问答
自然科学_科学技术与学问_分类信息_知识问答
_汽车_分类信息_知识问答
二手车_汽车_分类信息_知识问答
购车支招_汽车_分类信息_知识问答
驾驶、交规_汽车_分类信息_知识问答
汽车费用、保险_汽车_分类信息_知识问答
汽车口碑_汽车_分类信息_知识问答
汽车品牌_汽车_分类信息_知识问答
汽车其他_汽车_分类信息_知识问答
养车、用车_汽车_分类信息_知识问答
_地区问题_分类信息_知识问答
_买房装修_分类信息_知识问答






posted on 2010-06-24 11:56  Jetson Lee  阅读(308)  评论(0编辑  收藏  举报

中山房地产信息网    中山楼盘   中山二手房