《编写高质量代码:改善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循环次数很大时,这种优化显然是值得的。
最后还需要注意的是,循环体中的判断语句是否可以移到循环体外,要视程序的具体情况而定。一般情况下,与循环变量无关的判断语句可以移到循环体外,而有关的则不可以。

相关文章
|
3月前
|
Java
在Java编程的广阔天地中,条件语句是控制程序流程、实现逻辑判断的重要工具。
在Java编程中,if-else与switch作为核心条件语句,各具特色。if-else以其高度灵活性,适用于复杂逻辑判断,支持多种条件组合;而switch在多分支选择上表现优异,尤其适合处理枚举类型或固定选项集,通过内部跳转表提高执行效率。两者各有千秋:if-else擅长复杂逻辑,switch则在多分支选择中更胜一筹。理解它们的特点并在合适场景下使用,能够编写出更高效、易读的Java代码。
37 1
|
5月前
|
Java C++ Python
选择、条件、循环语句是编程语言中用于控制程序流程的重要语句。
选择、条件、循环语句是编程语言中用于控制程序流程的重要语句。