最新公告
  • 欢迎您光临欧资源网,本站秉承服务宗旨 履行“站长”责任,销售只是起点 服务永无止境!立即加入我们
  • 循环结构的基本工作方式:通过条件表达式判断是否执行循环体

    循环结构如何工作的基础知识:

    通过条件表达式判断是否执行循环体

    条件表达式遵循if语句表达式的原则

    do,while,for的区别

    do:语句先执行后判断,循环体至少执行一次

    while:先判断再执行,循环体可能不执行

    for:先判断再执行,比while更简洁

    for(;;) 和 while(true) 的区别:

    在编程中,我们经常需要使用无限循环。常用的两种方法是while(1)和for(;;)。这两种方法效果是一样的,但是哪一种更好呢?看看他们的编译代码:

    编译前和编译后

    while (1);mov eax,1

    测试 eax,eax

    je foo+23h

    jmp foo+18h

    编译前和编译后

    for(;;);jmp foo+23h

    一眼看去,for(;;)指令少,不占用寄存器,不判断跳转,比while(1).

    do … while语句循环方式示意图

    杨大c语言实验_c语言实验答案-重庆大学出版社(杨永斌 丁明勇)_大学c/c++语言程序设计实验教程

    while循环示意图

    杨大c语言实验_大学c/c++语言程序设计实验教程_c语言实验答案-重庆大学出版社(杨永斌 丁明勇)

    for循环模式示意图

    杨大c语言实验_c语言实验答案-重庆大学出版社(杨永斌 丁明勇)_大学c/c++语言程序设计实验教程

    实验一:三个循环语句的比较

    #include 
    int f1(int n)
    {
        int ret = 0;
       
        if( n > 0 )
        {
            do
            {
                ret += n;
                n--;
            }
            while( n > 0 );
        }
       
        return ret;
    }
    int f2(int n)
    {
    
        int ret = 0;
       
        while( n > 0 )
        {
            ret += n;
            n--;
        }
       
        return ret;
    }
    int f3(int n)
    {
        int ret = 0;
        int i = 0;
       
        for(i=1; i<=n; i++)
        {
            ret += i;
        }
       
        return ret;
    }
    int main()
    {
        printf("%dn", f1(100));
        printf("%dn", f2(100));
        printf("%dn", f3(100));
       
        return 0;
    }
    

    break和continue的区别:

    break 表示终止循环的执行

    continue是终止本次循环,进入下一个循环执行

    这也是switch不需要继续的原因

    实验2:continue和break的区别

    #include 
    void f1(int n)
    {
        int i = 0;
       
        for(i=1; i<=n; i++)
        {
            if( (i % 2) == 0 )
    

    大学c/c++语言程序设计实验教程_杨大c语言实验_c语言实验答案-重庆大学出版社(杨永斌 丁明勇)

    { break; } printf("%d ", i); } printf("n"); } void f2(int n) { int i = 0; for(i=1; i<=n; i++) { if( (i % 2) == 0 ) { continue; } printf("%d ", i); } printf("n"); } int main() { f1(10); f2(10); return 0; }

    实验 3:做与坏的魔力

    #include <stdio.h>
    #include <malloc.h>
    int func(int n)
    {
        int i = 0;
        int ret = 0;
        int* p = (int*)malloc(sizeof(int) * n);
       
        do
        {
    
            if( NULL == p ) break;
           
            if( n < 5 ) break;
            if( n > 100) break;
           
            for(i=0; i<n; i++)
            {
                p[i] = i;
                printf("%dn", p[i]);
            }
           
            ret = 1;
        }while( 0 );
       
        printf("free(p)n");
       
        free(p);
       
        return ret;
    }
    int main()
    {
        if( func(10) )
        {
            printf("OKn");
        }
        else
        {
            printf("ERRORn");
        }
        return 0;
    }
    

    总结:

    for循环先判断再进入循环体

    for循环适用于循环测试固定的场合

    while循环进行高级判断,然后进入循环体执行

    while循环适用于循环次数不定的场合

    do … while循环先执行循环体,再进行条件判断

    do … while 循环至少执行一次循环体

    说明

    1.本文档仅供个人学习使用,版权所有,禁止商业用途。

    2.本文为本人编辑整理,难免有些错误。

    3.为了方便大家在公交、地铁、外出办事时随时随地用手机查看本教程杨大c语言实验杨大c语言实验,教程在微信公众号更新同步帐号“Allen5G”。

    站内大部分资源收集于网络,若侵犯了您的合法权益,请联系我们删除!
    欧资源网 » 循环结构的基本工作方式:通过条件表达式判断是否执行循环体

    常见问题FAQ

    免费下载或者VIP会员专享资源能否直接商用?
    本站所有资源版权均属于原作者所有,这里所提供资源均只能用于参考学习用,请勿直接商用。若由于商用引起版权纠纷,一切责任均由使用者承担。更多说明请参考 VIP介绍。
    提示下载完但解压或打开不了?
    最常见的情况是下载不完整: 可对比下载完压缩包的与网盘上的容量,若小于网盘提示的容量则是这个原因。这是浏览器下载的bug,建议用百度网盘软件或迅雷下载。若排除这种情况,可在对应资源底部留言,或 联络我们.。
    找不到素材资源介绍文章里的示例图片?
    对于PPT,KEY,Mockups,APP,网页模版等类型的素材,文章内用于介绍的图片通常并不包含在对应可供下载素材包内。这些相关商业图片需另外购买,且本站不负责(也没有办法)找到出处。 同样地一些字体文件也是这种情况,但部分素材会在素材包内有一份字体下载链接清单。
    欧资源网
    一个高级程序员模板开发平台

    发表评论