再论Case和If语句的优劣(50分)

  • 主题发起人 主题发起人 DarwinZhang
  • 开始时间 开始时间
还有一些问题要单独说一下:

to beta:
"你没有仔细看我的那篇心得吧,我已经讲的很清楚了,你看到的汇编代码之所以会这样,没有用跳转表,是因为你的选项太少!"
我知道选项过少是会引起代码的变化,实际上我测试的时候写了大约10个选项,帖出来时是少写了几个选项,主要怕太多看不清,很抱歉.

to zjczxd:
"beta中主要讨论的是字符串的情况, 和DarwinZhang中的有所不同。"
实际上是一样的,因为字符可以通过计算函数转换成整数.
另外,您和creation-zy兄提出的看法基本一致,真是英雄所见略同.
只是我想说,如果用Hash表,就没有必要使用case语句,用地址表数组还方便一些.^_^

to qianwt:
" case i of
[red] 13:...[/red]
0: ...
1: ...
...... "
没有用,我上面的结论已经说明白了,改变程序次序不能改变代码执行次序.

 
to erickleung:
"以现今cpu的神速, if 和 case的执行速度不应有甚麽分别."
是的,现在很多程序都可以几乎不考虑效率,
但仍然有不少的程序需要优化,尤其是一些关键性的代码,
不然怎么能在竞争中取得优势呢?或许我们需要那么一点精神吧。
 
up
还是 beta 惹的祸,从 beta 的全部帖子的总体看,我支持 beta 的观点。
关于 case 和 if 语句,最初有讨论,结论是,将 2 者最优化后,单讲效率,
还是 case 略高,但它的限制却比 if 多(不是我的分析,是 Delphi 的作者
自己的原结论。我记不清在哪里看的了)。
胡乱插嘴,抱歉。
 
其实不关beta的事,我早就想讨论一下Case和If语句的用法,不过借bate兄的贴子做引子罢了。
 
超过两项,并且是顺序型就用case.
 
我用CASE 只为书写新新简单。
 
DarwinZhang 的说法很不错,有理有据,可以作为程序优化的一个方面

"结论是case语句比较"狡猾",难以干预它的行为,以至我们难以干涉它的实现方式。
就这一点来说,If语句就好得多。If语句总是”忠实“的生成我们想要的代码,
我们原来想要的结果一致,可以很容易根据概率调整程序。"
 
有没有其他看法????着急!
 
其实破绽颇多,呵呵。
 
后退
顶部