• C语言循环语句工程用法


    -循环语句分析 

    循环语句的基本工作方式

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

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

    do、while、for的区别

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

                     - while语句先判断后执行,循环体可能不执行

                     - for语句先判断后执行,相比while更简洁

    三者在使用上的区别:

     1 #include <stdio.h>
     2 
     3 int f1(int n)
     4 {
     5     int ret = 0;
     6     
     7     if( n > 0 )
     8     {
     9         do
    10         {
    11             ret += n;
    12             n--;
    13         }
    14         while( n > 0 );
    15     }
    16     
    17     return ret;
    18 }
    19 
    20 int f2(int n)
    21 {
    22     int ret = 0;
    23     
    24     while( n > 0 )
    25     {
    26         ret += n;
    27         n--;
    28     }
    29     
    30     return ret;
    31 }
    32 
    33 int f3(int n)
    34 {
    35     int ret = 0;
    36     int i = 0;
    37     
    38     for(i=1; i<=n; i++)
    39     {
    40         ret += i;
    41     }
    42     
    43     return ret;
    44 }
    45 
    46 int main()
    47 {
    48     printf("%d
    ", f1(100));
    49     printf("%d
    ", f2(100));
    50     printf("%d
    ", f3(100));
    51     
    52     return 0;
    53 }

    -循环语句分析

      

    break和continue的区别

                      - break表示终止循环的执行

                      - continue表示终止本次循环,进入下一次循环

                思考:

                            switch能否用continue关键字?为什么?


    答:不行,因为continue是用于循环的,而switch语句根本不是循环。

     1 #include <stdio.h>
     2 
     3 void f1(int n)
     4 {
     5     int i = 0;
     6     
     7     for(i=1; i<=n; i++)
     8     {
     9         if( (i % 2) == 0 )
    10         {
    11             break;
    12         }
    13         
    14         printf("%d ", i);
    15     }
    16     
    17     printf("
    ");
    18 }
    19 
    20 void f2(int n)
    21 {
    22     int i = 0;
    23     
    24     for(i=1; i<=n; i++)
    25     {
    26         if( (i % 2) == 0 )
    27         {
    28             continue;
    29         }
    30         
    31         printf("%d ", i);
    32     }
    33     
    34     printf("
    ");
    35 }
    36 
    37 int main()
    38 {
    39     f1(10);
    40     f2(10);
    41     
    42     return 0;
    43 }

    do和while 结合的妙用

    实例三:下面的例子为了执行强制free();来防止内存泄漏。

     1 #include <stdio.h>
     2 #include <malloc.h>
     3 
     4 int func(int n)
     5 {
     6     int i = 0;
     7     int ret = 0;
     8     int* p = (int*)malloc(sizeof(int) * n);
     9     
    10     do
    11     {
    12         if( NULL == p ) break;
    13         
    14         if( n < 5 ) break;
    15 
    16         if( n > 100) break;
    17         
    18         for(i=0; i<n; i++)
    19         {
    20             p[i] = i;
    21             printf("%d
    ", p[i]);
    22         }
    23         
    24         ret = 1;
    25     }while( 0 );
    26     
    27     printf("free(p)
    ");
    28     
    29     free(p);
    30     
    31     return ret;
    32 }
    33 
    34 int main()
    35 {
    36     if( func(10) )
    37     {
    38         printf("OK
    ");
    39     }
    40     else
    41     {
    42         printf("ERROR
    ");
    43     }
    44 
    45     return 0;
    46 }

    小结:

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

                for循环适合于循环次数固定的场合

                while循环先进行判断再进入循环体执行

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

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

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

  • 相关阅读:
    画图工具Graphviz安装配置
    转:完善eclipse+pdt作php开发中的代码提示能力
    转:SVN 出现This client is too old to work with working copy...错误
    Codeforces Round #260 (Div. 2)C. Boredom(dp)
    three.js 源代码凝视(十四)Math/Sphere.js
    android项目中刷新activity界面
    中科燕园GIS外包---地铁GIS项目
    华为HCNA教程(笔记)
    HapiJS开发手冊
    《Java并发编程实战》第十四章 构建自己定义的同步工具 读书笔记
  • 原文地址:https://www.cnblogs.com/lemaden/p/10122583.html
Copyright © 2020-2023  润新知