zoukankan      html  css  js  c++  java
  • C语言程序的三种基本结构

    1、程序结构:在C语言程序中,一共有三种程序结构:顺序结构、选择结构(分支结构)、循环结构;

      顺序结构:从头到尾一句接着一句的执行下来,直到执行完最后一句;

      选择结构:到某个节点后,会根据一次判断的结果来决定之后向哪一个分支方向执行;

      循环结构:循环结构有一个循环体,循环体里是一段代码。对于循环结构来说,关键在于根据判断的结果,来决定循环体执行多少次;

      注:在逻辑上有一种bool类型(也叫boolean类型,布尔类型),只有两个值,即真和假。C语言的判断表达式最终的值就是一个bool类型,这个判断表达式的bool值就决定了选择结构如何选择,循环结构如何循环;

    2、顺序结构:顺序结构很简单,一般我们遇到的除了选择结构和循环结构外,都是顺序结构;

    3、选择结构:C语言中常用的选择结构主要有以下两种:

      (1) if else:引入关键字:if  else  else if

        if (bool值)     // 如果bool值为真,则执行代码段1,否则执行代码段2

        {

          代码段1

        }

        else

        {

          代码段2

        }

        if (bool值1)    // 如果bool值1为真,则执行代码段1,否则判断bool值2是否为真

        {

          代码段1

        }

        else if (bool值2)  // 若bool值2为真则执行代码段2,否则直接执行代码段3

        {          // 开头的if和结尾的else都只能有一个,但是中间的else if可以有好多个

          代码段2

        }

        else

        {

          代码段3

        }

     1 #include <stdio.h>
     2 
     3 int main(void)
     4 {
     5     int a, b, max;
     6     
     7     a = 456;
     8     b = 45;
     9     
    10     if (a > b)            // 判断表示式
    11     {
    12         max = a;
    13         printf("true.
    ");
    14     }
    15     else if (a == b)
    16     {
    17         max = a;
    18         printf("a == b.
    ");
    19     }
    20     else
    21     {
    22         max = b;
    23         printf("false.
    ");
    24     }
    25     
    26     printf("max = %d.
    ", max);
    27     
    28     return 0;
    29 }

      (2) switch case:引入关键字:switch  case  break  default

        switch (变量)       // 执行到这一句时,变量的值是已知的

        {             // switch case语句执行时,会用该变量的值依次与各个case后的常数去对比,试图找到第一个匹配项找到匹配的项目后,

           case 常数1:       // 就去执行该case对应的代码段如果没找到则继续下一个case,直到default

             代码段1;        // 如果前面的case都未匹配,则default匹配。

             break;

           case 常数2:  

             代码段2;

             break;

           ……

           default:

             代码段n;

             break;

        }

        注:第一,case中必须是常数,而且必须是整形;

          第二,一般来说,每个case中代码段后都必须有一个break;

          第三,case之后一般都会有default,虽然语法上允许没有default,但是建议写代码时一定要写;

     1 // 结构化设计-选择结构示例代码 switch case演示
     2 #include <stdio.h>
     3 
     4 int main(void)
     5 {
     6     int num;
     7     
     8     num = 1;
     9     
    10     switch (num)
    11     {
    12         case 1:
    13             printf("a
    ");
    14             break;
    15         case 2:
    16             printf("b
    ");
    17             break;
    18         case 3:
    19             printf("c
    ");
    20             break;
    21         case 4:
    22             printf("d
    ");
    23             break;
    24         default:
    25             printf("-
    ");
    26             break;
    27     }
    28     
    29     return 0;
    30 }

      (3) if else和switch case的区别:if else适合对比条件较复杂,但是分支比较少的情况,switch case适合那种对比条件简单,但是分支较多的情况;

        通常的做法是:在适合使用switch case的情况下会优先使用switch case,如果不适合则使用if else;

    4、循环结构:C语言中常用的循环结构主要有以下三种:

      (1) for:

        for (循环控制变量初始化; 循环终止条件; 循环控制变量增量)

        {

          循环体

        }

        循环执行步骤:第一,先进行循环控制变量初始化;

               第二,执行循环终止条件,如果判断结果为真,则进入第三步;如果为假则循环终止并退出;

               第三,执行循环体;

               第四,执行循环控制变量增量,转入第二步;

        注:for循环()中的三部分除了循环终止条件外,其他两部分都可以省略,但标准的for循环中,应该把循环控制变量的初始化,增量都放在()当中,并且在循环体中绝对不应该更改循环控制变量;

     1 // 计算1+2+3+····+10
     2 #include <stdio.h>
     3 
     4 int main(void)
     5 {
     6     int i, sum;
     7     
     8     printf("i = %d.
    ", sum);
     9     
    10     for (i=0,sum=0; i<=10; i++)
    11     {
    12         sum += i;
    13     }
    14     printf("sum = %d.
    ", sum);
    15     
    16     return 0;
    17 }

      (2) while:

        循环控制变量初始化

        while(循环终止条件)

        {

          循环体

          循环控制变量增量

        }

        循环执行步骤:第一,先进行循环控制变量初始化(在while之前);

               第二,判断循环终止条件,如果判断结果为真,则进入第三步;如果为假则不执行循环体;

               第三,执行循环体;

               第四,执行循环控制变量增量,转入第二步;

     1 // 计算100以内所有奇数的和
     2 #include <stdio.h>
     3 
     4 int main(void)
     5 {
     6     int i, sum;
     7     
     8     i = 1;
     9     sum = 0;
    10     
    11     while(i < 100)
    12     {
    13         printf("i = %d.
    ", i);
    14         sum += i;
    15         i += 2;
    16     }
    17     
    18     printf("sum = %d.
    ", sum);
    19     
    20     return 0;
    21 }

      (3) do while:

        循环控制变量初始化

        do

        {

          循环体

          循环控制变量增量

        }while (循环终止条件);

        循环执行步骤:第一,先进行循环控制变量初始化(在do while之前);

               第二,执行循环体;

               第三,执行循环控制变量增量;

               第四,判断循环终止条件,如果判断结果为真,则返回第二步;如果为假则直接退出循环;

     1 // 计算100以内所有奇数的和
     2 #include <stdio.h>
     3 
     4 int main(void)
     5 {
     6     int i, sum;
     7     
     8     i = 1;
     9     sum = 0;
    10     
    11     do
    12     {
    13         printf("i = %d.
    ", i);
    14         sum += i;
    15         i += 2;
    16     }while(i < 100);
    17     
    18     printf("sum = %d.
    ", sum);
    19     
    20     return 0;
    21 }

      (4) 总结:不管哪种循环结构,都不能缺少循环控制条件初始化,终止条件,循环控制变量增量,循环体这四部分;

           while循环是先判断后执行,do while循环是先执行后判断,等循环一次之后,其实都是一样的;

     (以上所述内容为学习朱老师的嵌入式课程后复习笔记所得,目的是自己复习巩固知识,同时把自己学到的知识分享出来。能力有限,水平一般,如有错误,欢迎指正,谢谢!)

    2017-02-26 17:52:18

  • 相关阅读:
    第十六届全国大学智能汽车竞赛竞速比赛规则-讨论稿
    从0到1设计一台8bit计算机
    在 CentOS7 上安装 MongoDB
    sea.js五分钟上手
    自动调试自动编译五分钟上手
    自动调试自动编译五分钟上手
    在react底下安装环境
    在react底下安装环境
    推荐几款好用的云笔记软件
    推荐几款好用的云笔记软件
  • 原文地址:https://www.cnblogs.com/ARM-kang/p/6442949.html
Copyright © 2011-2022 走看看