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.\n");
14     }
15     else if (a == b)
16     {
17         max = a;
18         printf("a == b.\n");
19     }
20     else
21     {
22         max = b;
23         printf("false.\n");
24     }
25
26     printf("max = %d.\n", 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\n");
14             break;
15         case 2:
16             printf("b\n");
17             break;
18         case 3:
19             printf("c\n");
20             break;
21         case 4:
22             printf("d\n");
23             break;
24         default:
25             printf("-\n");
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.\n", sum);
 9
10     for (i=0,sum=0; i<=10; i++)
11     {
12         sum += i;
13     }
14     printf("sum = %d.\n", 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.\n", i);
14         sum += i;
15         i += 2;
16     }
17
18     printf("sum = %d.\n", 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.\n", i);
14         sum += i;
15         i += 2;
16     }while(i < 100);
17
18     printf("sum = %d.\n", sum);
19
20     return 0;
21 }

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

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

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

2017-02-26 17:52:18

时间: 2025-01-02 14:16:27

C语言程序的三种基本结构的相关文章

求推荐go语言开发工具及go语言应该以哪种目录结构组织代码?

go语言的开发工具推荐? go语言开发普通程序及开发web程序的时候,应该以哪种目录结构组织代码? 求推荐go语言开发工具及go语言应该以哪种目录结构组织代码? >> golang 这个答案描述的挺清楚的:http://www.goodpm.net/postreply/golang/1010000008839459/求推荐go语言开发工具及go语言应该以哪种目录结构组织代码.html

最最最最最最最最基础的C---数据类型与运算符,三种基本结构,语句

算法处理的对象是数据,数据是以某种特定的形式存在的 数据类型 1字节(byte)=8位 基本数据类型: 整型  (short2字节, int 4字节, long 4字节) 浮点型(float 4字节.double 8字节,long double 16字节) 字符型(char 8字节) 布尔型(bool true(1)&flase(0)) 枚举类型(enum) 构造数据类型:数组类型,    结构体类型(struct)  共用体类型(union) 其他:        指针类型(*)    空类型

嵌入式启动之三:应用程序的三种存储和加载方式

通过前面嵌入式启动方式的学习,再来理解嵌入式应用程序的三种加载方式是比较容易的.一般意义上,启动是为了引导OS到内存,而应用程序则是操作系统run起来后的用户选择,两者是比较相似的.先根据启动的两种方式来介绍应用程序的加载. 1. 对于资源有限型的嵌入式系统,应用程序在编译.链接之后,会通过二进制工具分析可执行文件的格式,抽出code和data段数据,生成.HEX格式或者.BIN格式,下载到SOC内置的flash中.在上电之后就直接执行了.这种加载方式称为离线加载. 2. 对于资源宽裕型的嵌入式

【WPF学习】创建WPF应用程序的三种方式

说到WPF项目,肯定会想到XAML,这两者是相互补充的技术,其实它们也是相互独立的,所以可以创建不使用XAML的WPF项目,今天就讲一讲创建WPF应用程序的三种不同的编码方式. 1.只使用代码:这种方法类似于传统的Windows窗体应用程序,通过代码语句生成用户界面.这种方法在编写WPF项目时很不常见,但是也不完全是没有优点的,它的潜在优点是可以随意定制应用程序.例如想只用代码创建一个窗体,那么需要新建一个Class(注意不是新建一个Window),在Class的代码中继承Window,然后写一

构造并发程序的三种基本方法和优缺点

构造并发程序的三种基本方法 进程 用这种方法,每个逻辑控制流都是一个进程,由内核来调度维护.因为进程有独立的虚拟地址空间,想要和其他流通信,控制流必须使用某种显式的进程间通信机制. I/O多路复用 在这种形式的并发编程中,应用程序在一个进程的上下文中显式地调度它们自己的逻辑流.逻辑流被模型化为状态机,数据到达文件描述符后,主程序显式地从一个状态转换到另一个状态.因为程序是一个单独的进程,所以所有的流都共享同一个地址空间. 假设要求编写一个echo服务器,它也能对用户从标准输入键入的交互命令做出响

程序的三种结构

1.顺序结构:顺序执行语句. 2.分支结构:通过进行一个判断在两个可选的语句序列之间选择执行(分支). 3.循环结构:在满足某个条件的时候反复执行一个语句序列(循环). if语句1.用if语句可以构成分支结构,它根据给的条件进行判定,以决定执行某个分支程序段. 2.C语言的if语句有三种基本形式. if语句第一种形式if (条件表达式) {语句1:}当条件表达式为真,执行语句1,否则,跳过语句1,继续执行下面的语句. 注意事项if (条件表达式) :{语句1:}注意上述代码表达式括号后面跟了’;

c#语言中的三种循环

什么是编程 编程就是使用一种程序设计语言编写程序代码,让计算机解决某个问题的过程.根据这个定义来看,根据使用的程序设计语言不同,编写的程序就不同. 关于c#语言: C#是一种最新的.面向对象的编程语言.它使得程序员可以快速地编写各种基于Microsoft .NET平台的应用程序,Microsoft .NET提供了一系列的工具和服务来最大程度地开发利用计算与通讯领域. 正是由于C#面向对象的卓越设计,使它成为构建各类组件的理想之选--无论是高级的商业对象还是系统级的应用程序.使用简单的C#语言结构

Java三种循环结构的区别

第一种:for循环 循环结构for语句的格式: for(初始化表达式;条件表达式;循环后的操作表达式) { 循环体; } eg: 1 class Dome_For2{ 2 public static void main(String[] args) { 3 //System.out.println("Hello World!"); 4 //求1-10的偶数的和 5 int sum = 0; 6 for (int i = 1;i<=10 ; i++ ) { 7 if (i%2 ==

Linux -- ubuntu下安装程序的三种方法

引言 在ubuntu当中,安装应用程序我所知道的有三种方法,分别是apt-get,dpkg安装deb和make install安装源码包三种.下面针对每一种方法各举例来说明. apt-get方法 使用apt-get install来安装应用程序算是最常见的一种安装方法了,比如我要安装build-essential这个软件,使用以下,他会帮我把所有的依赖包都一起安装了. sudo apt-get install build-essential 执行上述命令以后,我们可以看到一下信息,The fol