php网站开发建设,小说排行榜,东莞网络优化服务商,深圳龙华区防控措施一、问题 在C语⾔程序中#xff0c;常常使⽤循环结构来解决特定的问题。那么在设计程序时#xff0c;怎样才能提⾼循环语句的效率呢#xff1f;
二、解答 C循环语句中#xff0c;for 语句使⽤频率最⾼#xff0c;while 语句其次#xff0c;do 语句很少⽤。提⾼循环体效率…一、问题 在C语⾔程序中常常使⽤循环结构来解决特定的问题。那么在设计程序时怎样才能提⾼循环语句的效率呢
二、解答 C循环语句中for 语句使⽤频率最⾼while 语句其次do 语句很少⽤。提⾼循环体效率的基本办法是降低循环体的复杂性。下⾯说明提⾼循环效率的⼏种情况。
1.直接提⾼循环语句的效率
1在多重循环中如果有可能应当将最长的循环放在最内层最短的循环放在最外层以减少 CPU 切换循环层的次数。例如下⾯两个循环语句循环语句2 ⽐循环语句1 的效率⾼。 语句1长的循环在外层
for (i 0; i 100; i)
{for (j 0; j 5; j){sum a[i][j];}
}语句2长的循环在内层
for (j 0; j 5; j)
{for (i 0; i 100; i){sum a[i][j];}
}2如果循环体内存在逻辑判断并且循环次数很⼤宜将逻辑判断移到循环体的外⾯。例如下⾯两个循环语句 语句1效率低但程序简洁
for (i 0; i N; i)
{if (condition){DoSomething();}elseDoOtherthing();
}语句2效率⾼但程序不简洁
if (condition)
{for (i 0; i N; i){DoSomething();}
}
else
{for (i 0; i N; i){DoOtherthing();}
} 语句1⽐语句2 多执⾏了 N-1 次逻辑判断。并且由于前者总要进⾏逻辑判断打断了循环的模式使得编译器不能对循环进⾏优化处理降低了效率。 如果 N ⾮常⼤最好采⽤示例语句2的写法可以提⾼效率。如果 N ⾮常⼩两者效率差别并不明显采⽤语句1的写法⽐较好因为程序更加简洁。
2. 间接提⾼循环语句的效率
1对于简单的if...else 语句建议使⽤c语⾔的三⽬运算符“ ?: ”代替以提⾼程序的执⾏效率。如
if (i 20)
{a 1;
}
else
{a 6;
}可以写成
a (i 20) ? 1 : 6;
2在程序中不允许出现如下风格的语句。
if (i 20)return a;
return b;应写成
if (i 20)
{return a;
}
else
{return b;
}3对于 switch 语句在每个 case 语句的后⾯不要忘记加 break除⾮是想使得某⼏个分⽀重叠。
4 switch 语句⼀定要有 default即使它不做什么。
三、总结 从上⾯的学习中可以知道提⾼循环语句的效率有时是按照特定的⽅法降低代码的复杂性有时却是视情况⽽定的。总的来说提⾼循环体的效率应当在书写程序的循环语句时保持良好的风格。