其他分享
首页 > 其他分享> > break的执行效率vs改变循环条件结束循环的效率

break的执行效率vs改变循环条件结束循环的效率

作者:互联网

项目场景:

复习时对照参考答案发现和自己的程序不同,想了一下程序的执行效率


问题描述:

韩信点兵
参考答案:

#include <stdio.h>
#include <stdlib.h>

int main()
{
    int soldier = 1;
    while(soldier)
    {
        soldier++;
        if(soldier%3==2&&soldier%5==3&&soldier%7==2)
        {
            printf("soldiers:%d\n",soldier);
            soldier = 0;
        }
    }
    return 0;
}

我的代码:

#include <stdio.h>
#include <stdlib.h>

int main()
{
    int soldier = 1;
    while(1)
    {
        soldier++;
        if(soldier%3==2&&soldier%5==3&&soldier%7==2)
        {
            printf("soldiers:%d\n",soldier);
            break;
        }
    }
    return 0;
}


不同点:

只有结束循环的时候的语句不同,参考修改了判断条件使循环结束,而我则使用了break。


比较择优:

从程序的运行效率来看: -

1.先让soldier变量为零,再回到while重新判断,消耗了两个操作数。
2.break不是表达式,表达式由操作数和运算符组成 [PS 独立的操作数 也是一个表达式],break 没操作数 没运算符。

所以,如果是在较大的循环嵌套程序中,使用break无疑是最优选择,效率最高;当然,如果想soldier那样的变量在后续中需要继续使用,必须改变条件来结束循环,那就另当别论了。

标签:int,soldier%,break,soldier,循环,&&,include,效率
来源: https://blog.csdn.net/weixin_53312629/article/details/112217032