| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 2042 人关注过本帖
标题:[分享]一段我主管写的汗死我的代码
只看楼主 加入收藏
yms123
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:版主
威 望:209
帖 子:12488
专家分:19042
注 册:2004-7-17
收藏
得分:0 
而且我没有说过“switch...case语句比if语句要好得多”这是要具体情况具体分析的。
2008-01-08 20:36
ILoveMK
Rank: 3Rank: 3
等 级:新手上路
威 望:6
帖 子:487
专家分:0
注 册:2007-2-12
收藏
得分:0 
你们都太无知,这样写叫做“艺术”,不懂别嚷嚷

天下归心
2008-01-08 20:49
中学者
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:版主
威 望:20
帖 子:3554
专家分:80
注 册:2007-9-14
收藏
得分:0 
LS"高见"!!

樱花大战,  有爱.
2008-01-08 21:15
pacocai
Rank: 3Rank: 3
等 级:新手上路
威 望:6
帖 子:1583
专家分:0
注 册:2007-3-12
收藏
得分:0 
问题是这种艺术太多了~~~

较为讨厌这种代码形式,但是却很有中国特色!我看到很多人都喜欢像楼主的主管这样写代码。而且现在还是以代码的长度来决定薪水的高低的吗???

只不过对于代码来说的话别的我倒没什么,可能做这么几年麻木了吧,现在最不爽的就是工程快结束的时候一群一懂的人在拿你的程序指指点点的,最后把你原先的设计改得面目全非,之前所写的代码全被重新加工,就有点像楼主主管的代码,本来switch可以搞定的,但是最后硬要被那些不懂装懂的人改成IF ELSE 又IF…………鄙视之!

浮生若梦天边月,醉死如酒水中星。红楼一梦千人叹,岂让万夫空做贱。博客:http://hi.baidu.com/rxvip
2008-01-12 02:43
b629
Rank: 1
等 级:新手上路
帖 子:127
专家分:0
注 册:2007-12-29
收藏
得分:0 
原帖由 [bold][underline]yms123[/underline][/bold] 于 2008-1-8 20:32 发表 [url=http://bbs.][/url]

仔细看那段代码mode==1、mode==2、mode==3判断中都是这一个变量,这种结构完全可以使用switch...case语句,根本没有必要使用if..else。


if..else應該比switch...case節省內存吧!!!
2008-01-12 10:25
jiangzixuan
Rank: 1
来 自:山东日照
等 级:新手上路
帖 子:615
专家分:0
注 册:2006-5-31
收藏
得分:0 
顶9楼

都是水何必装醇,都是色狼又何必装羊!!
2008-01-12 10:49
pacocai
Rank: 3Rank: 3
等 级:新手上路
威 望:6
帖 子:1583
专家分:0
注 册:2007-3-12
收藏
得分:0 
if..else比switch更省内存??如果在多判断的情况下,switch还是比较好的,首先你整体的语言结构会变得清晰,如果用多IF语句的话会容易产生错误,并且代码混乱。而且关键是switch将数据和代码在内存中进行了分离(把数据pack了),提高了cache利用率。if-else   没有。而且,如果纯粹比较数字或字符,还是更建议使用switch,因为它只会在一开始的switch括号中取出变量值一次,然后将这个值与下面所设定的case比较,但如果使用if,每次遇到条件式时,都要取出变量值,效率的差异就在这儿。不过这个只限于了解,具体的速度倒还真没测试过。

浮生若梦天边月,醉死如酒水中星。红楼一梦千人叹,岂让万夫空做贱。博客:http://hi.baidu.com/rxvip
2008-01-12 10:58
pacocai
Rank: 3Rank: 3
等 级:新手上路
威 望:6
帖 子:1583
专家分:0
注 册:2007-3-12
收藏
得分:0 
刚在网上查了一下资料,在这里转一篇switch与If语句执行的比较:

对同一个变量的不同值作条件判断时,可以用switch语句与if语句,哪个语句执行效率更高呢,答案是switch语句,尤其是判断的分支越多越明显。
这个是用switch语句做10000次判断
a = getTimer();
b = 10000;
n = 9;
while (b>0) {
    switch (n) {
    case 1 :
        b--;
        break;
    case 2 :
        b--;
        break;
    case 3 :
        b--;
        break;
    case 4 :
        b--;
        break;
    case 5 :
        b--;
        break;
    case 6 :
        b--;
        break;
    case 7 :
        b--;
        break;
    case 8 :
        b--;
        break;
    case 9 :
        b--;
        break;
    case 10 :
        b--;
        break;
    default :
        b--;
        break;
    }
}
trace(getTimer()-a);

这个是用if语句做10000次判断
a = getTimer();
b = 10000;
n = 9;
while (b>0) {
    if (n == 1) {
        b--;
    } else if (n == 2) {
        b--;
    } else if (n == 3) {
        b--;
    } else if (n == 4) {
        b--;
    } else if (n == 5) {
        b--;
    } else if (n == 6) {
        b--;
    } else if (n == 7) {
        b--;
    } else if (n == 8) {
        b--;
    } else if (n == 9) {
        b--;
    } else if (n == 10) {
        b--;
    } else {
        b--;
    }
}
trace(getTimer()-a);

switch语句的执行结果为71,if语句的结果为140,switch语句执行速度比if语句快了一倍,上面的n取值越大,分支越多,结果相差越大。

浮生若梦天边月,醉死如酒水中星。红楼一梦千人叹,岂让万夫空做贱。博客:http://hi.baidu.com/rxvip
2008-01-12 11:00
岳C
Rank: 1
等 级:禁止发言
帖 子:354
专家分:0
注 册:2007-7-16
收藏
得分:0 
提示: 作者被禁止或删除 内容自动屏蔽

坚持到底
2008-01-13 18:06
沉沦过迁
Rank: 2
来 自:广西百色
等 级:论坛游民
帖 子:2297
专家分:10
注 册:2007-5-8
收藏
得分:0 
踢下去得了

也许我没有明天,但是我拥有现在
2008-01-13 18:32
快速回复:[分享]一段我主管写的汗死我的代码
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.051543 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved