一、问题
在C语⾔程序中,常常使⽤循环结构来解决特定的问题。那么在设计程序时,怎样才能提⾼循环语句的效率呢?
二、解答
C循环语句中,for 语句使⽤频率最⾼,while 语句其次,do 语句很少⽤。提⾼循环体效率的基本办法是降低循环体的复杂性。下⾯说明提⾼循环效率的⼏种情况。
1.直接提⾼循环语句的效率
(1)在多重循环中,如果有可能,应当将最长的循环放在最内层,最短的循环放在最外层,以减少 CPU 切换循环层的次数。例如下⾯两个循环语句,循环语句2 ⽐循环语句1 的效率⾼。
语句1:长的循环在外层
for (i = 0; i
语句2:长的循环在内层
for (j = 0; j
(2)如果循环体内存在逻辑判断,并且循环次数很⼤,宜将逻辑判断移到循环体的外⾯。例如下⾯两个循环语句:
语句1:效率低但程序简洁
for (i = 0; i
语句2:效率⾼但程序不简洁
if (condition)
{
for (i = 0; i
语句1⽐语句2 多执⾏了 N-1 服务器托管网次逻辑判断。并且由于前者总要进⾏逻辑判断,打断了循环的模式,使得编译器不能对循环进⾏优化处理,降低了效率。
如果 N ⾮常⼤,最好采⽤示例语句2的写法,可以提⾼效率。如果 N ⾮常⼩,两者效率差别并不明显,采⽤语句1的写法⽐较好,因为程序更加简洁。
2. 间接提⾼循环语句的效率
(1)对于简单的if…else 语句,建议使⽤c语⾔的三⽬运算符“ ?: ”代替,以提⾼程序的执⾏效率。如:
if (i
可以写成:
a = (i
(2)在程序中,不允许出现如下风格的语句。
if (i
应写成:
if (i
(3)对于 switch 语句,在每个 case 语句的后⾯不要忘记加 break,除⾮是想使得某⼏个分⽀重叠。
(4) switch 语句⼀定要有 default,即使它不做什么。
三、总结
从上⾯的学习中可以知道,提⾼循环语句的效率有时是按照特定的⽅法降低代码的复杂性,有时却是视情况⽽定的。总的来说,提⾼循环体的效率应当在书写程序的循环语句时保持良好的服务器托管网风格。
服务器托管,北京服务器托管,服务器租用 http://www.fwqtg.net
对象内存布局 对象里的三个区: 对象头(Header):Java对象头占8byte。如果是服务器托管网数组则占12byte。因为JVM里数组size需要使用4byte存储。 标记字段MarkWord: 用于存储对象自身的运行时数据,它是synchronized…