《编写高质量代码:改善c程序代码的125个建议》——建议20-4:尽量使逻辑判断语句置于循环语句外层

简介:

本节书摘来自华章计算机《编写高质量代码:改善c程序代码的125个建议》一书中的第3章,建议20-4,作者:马 伟 更多章节内容可以访问云栖社区“华章计算机”公众号查看。

建议20-4:尽量使逻辑判断语句置于循环语句外层

一般情况下,我们应该尽量避免在程序的循环体内包含逻辑判断语句。当循环体内不得已而存在逻辑判断语句,并且循环次数很大时,我们应该尽量想办法将逻辑判断语句移到循环语句的外层,从而使程序减少执行逻辑判断语句的次数,提高程序的执行效率。如下面的示例代码所示:

for (i = 0; i < n; i++)
{
    if (condition)
    {
            DoSomething();
    }
    else
    {
            DoOtherthing();
    }
}

在上面的代码中,每执行一次for循环,都要执行一次if语句判断。当for循环的次数很大时,执行多余的判断不仅会消耗系统的资源,而且会打断循环“流水线”作业,使得编译器不能对循环进行优化处理,降低程序的执行效率。因此,我们可以通过将逻辑判断语句移到循环语句的外层的方法来减少判断的次数,如下面的代码所示:

if (condition)
{
    for (i = 0; i < n; i++)
    {
            DoSomething();
    }
}
else
{
    for (i = 0; i < n; i++)
    {
            DoOtherthing();
    }
}

虽然上面的代码没有前面的看起来简洁,但却使程序执行逻辑判断语句减少n-1次,在for循环次数很大时,这种优化显然是值得的。
最后还需要注意的是,循环体中的判断语句是否可以移到循环体外,要视程序的具体情况而定。一般情况下,与循环变量无关的判断语句可以移到循环体外,而有关的则不可以。

相关文章
|
9月前
|
搜索推荐 算法 编译器
5.13 汇编语言:仿写For循环语句
循环语句(for)是计算机编程中的一种基本控制结构,它允许程序按照指定的次数或范围重复执行一段代码块。for循环在处理需要进行迭代操作的情况下非常有用,它使得程序可以更加方便地控制循环的次数。一般来说,for循环由三个部分组成:初始化部分、条件表达式和更新部分,以及一个需要重复执行的代码块。在每次循环迭代开始时,程序首先执行初始化部分,然后检查条件表达式的值,如果为真,则执行代码块,并在每次循环结束后执行更新部分。只要条件表达式为真,for循环就会一直重复执行;一旦条件表达式为假,循环将停止,程序继续执行循环之后的代码。
55 0