循环语句的效率:
C++/ C 循环语句中,f or语句使用频率最高,whi l e语句其次,do语句很少用。提高循环体效率的基本办法是降低循环体的复杂性。
1.在多重循环中,如果有可能,应当将最长的循环放在最内层,最短的循环放在最外层,以减少CPU跨切循环层的次数。
例1:
程序1:
for (row = 0; row<100; row++)
{
for (col = 0; col<5; col++)
{
sum = sum + a[row][col];
}
}
程序2:
for (col = 0; col<5; col++)
{
for (row = 0; row<100; row++)
{
sum = sum + a[row][col];
}
}
分析:程序1低效率,长循环在最外层;程序2高效率,长循环在最内层。
2.如果循环体内存在逻辑判断,并且循环次数很大,宜将逻辑判断移到循环体的外面。
程序1:
for (i = 0; i <N; i++)
{
if (condition)
{
DoSomething();
}
else
{
DoOtherthing();
}
}
程序2:
if (condition)
{
for (i = 0; i < N; i++)
{
DoSomething();
}
}
else
{
for (i = 0; i < N; i++)
{
DoOtherthing();
}
}
分析:程序1效率低但程序简洁;程序2效率高但程序不简洁.
补充:
goto语句:能够从多重循环体中咻地一下子跳到外面,用不着写很多次的break语句;由于goto语句存在很多隐患,因此主张少用、慎用goto 语句。
如:
{
{
{
goto error;
}
}
}
error;
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。