嵌入式C编程 02_流程控制.ppt_第1页
嵌入式C编程 02_流程控制.ppt_第2页
嵌入式C编程 02_流程控制.ppt_第3页
嵌入式C编程 02_流程控制.ppt_第4页
嵌入式C编程 02_流程控制.ppt_第5页
已阅读5页,还剩35页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、流程控制,课程安排,什么是流程控制 顺序流程结构 分支流程结构 循环流程结构,回顾什么是程序? 程序员将解决某个工程问题的想法通过编程语言组织成程序 如果组织程序? 程序 = 数据(组合) + 语句(组合) 回顾有哪些基本数据类型?回顾什么是语句? 表达式加分号构成语句。 语句就是计算机的行为动作!,从回顾开始,想象一下自己参加这个培训班的日子将会怎样度过? 温习上次课程; 预习下次课程; 如果上课日子到来; 到学校上课; 如此循环,直到培训班课程结束! 这里存在几种动作过程(流程)?,生活中的动作过程(流程),顺序流程 分支流程 循环流程,流程分类,1966 年, Boehm 和 Jacop

2、ini 证明了程序设计语言仅仅使用顺序、选择和循环三种基本控制结构就足以表达出各种其他的形式结构。 所以,利用顺序结构、分支结构、循环结构或者这些结构的组合就可以让计算机处理任何工程问题了,程序语言基本控制结构,课程安排,什么是流程控制 顺序流程结构 分支流程结构 循环流程结构,顺序流程结构,从控制台输入一个字符,输出该字符的ASCII编码,实例,课程安排,什么是流程控制 顺序流程结构 分支流程结构 循环流程结构,分支流程结构,判断语句:有么为真,要么为假!没有第三种情况!,语法结构 if (比较/逻辑表达式) 语句一; 语句二; ,if语句,判断整数是否大于0、小于0、等于0、不等于0 判断

3、整数是否在某个范围之内 输入字符,判断如果是小写字母,则输出该字母 输入字符,判断如果是字母,则输出该字母,实例,语法结构 if (比较/逻辑表达式) 语句一; 语句二; else 语句三; 语句四; ,ifelse语句,输入字符,判断如果是字母,则输出该字母;否则提示输入非字母,实例,语法结构 if (比较/逻辑表达式) 语句一; 语句二; else if (比较/逻辑表达式) 语句三; 语句四; ,ifelse if语句,if (比较/逻辑表达式) 语句一; 语句二; else if (比较/逻辑表达式) 语句三; 语句四; else 语句五; 语句六; ,输入字符,判断如果是小写字母,显

4、示对应大写字母;如果是大写字母,显示对应小写字母 输入字符,判断如果是小写字母,显示对应大写字母;否则如果是大写字母,显示对应小写字母 输入字符,判断如果是小写字母,显示对应大写字母;否则如果是大写字母,显示对应小写字母;否则显示输入非字母 输入字符,判断如果是小写字母,显示对应大写字母;否则如果是大写字母,显示对应小写字母;否则如果是数字,显示该数字值;,实例,if 分支结构支持分支嵌套,嵌套使用时要注意ifelse 的配对,If使用注意!,例: if (a=b) if(b=c) printf(a=b=c); else printf(a!=b);,修改后:if (a=b) if(b=c) p

5、rintf(a=b=c); else printf(a!=b); ,加 配对,配对的if-else格式要一致,增强可读性,语法结构,switch语句,用于多分支选择 例如:根据控制台输入的字符17,显示星期 swich(ch) case 1: printf(“星期一n”); break; default: printf(“输入非法”); break;,switch应用实例,漏掉某个break会怎么样? case命中后会一直执行,直到遇到第一个break才结束switch,switch应用注意!,条件表达式,一般形式: expr1 ? expr2 : expr3 执行过程 功能:相当于条件语句,

6、但具有返回值 实例: int a = 20, b = 10; printf(“max is %dn”, a b ? a : b);,实验2-4:分支流程控制 1、将学生分数按标准分为优、良、中、差四个级别; 2、switch实现从控制台获得一个字符输入,如果输入 为m, 显示”good moning”; 如果输入为a, 显示”good afternoon”; 如果输入为n, 显示”good night”; 其他字符则显示“do nothing”; 3、实现猜拳游戏:模拟两个玩家出拳(石头、剪刀、 布),判断胜、平、负。,上机实验,课程安排,什么是流程控制 顺序流程结构 分支流程结构 循环流程结

7、构,循环流程结构,C语言可实现循环的语句: 1、while 语句 2、do while 语句 3、for 语句 4、用goto 和 if 构成循环(永远不要使用),循环语句种类,语法结构:,while(表达式) 循环体语句;,执行流程:,while语句,while实例,1、循环打印数值1100 2、计算1100的累加值:,语法结构:,do 循环体语句; while(表达式);,执行流程:,dowhile语句,特点:至少执行一次循环体,dowhile实例,1、循环打印数值1100 2、计算1100的累加值:,while循环使用注意,1、死循环 while(1) 语句; 2、while(0)与do

8、 while(0)在做什么? 3、break退出循环 while(1) if (表达式) break; 语句; ,do 语句; while(1); do if (表达式) break; 语句; while(1),语法结构:,for(expr1 ; expr2 ; expr3) 循环体语句;,执行流程:,for语句,特点:对于预先知道循环次数时通常用for,for实例,1、循环打印数值1100 2、计算1100的累加值:,for循环使用注意,1、死循环 for(;) 语句; 2、for变体 for(; i=100; i+) for(; i = 100;) 3、break退出循环 for(;) i

9、f (表达式) break; 语句; ,循环扩展话题,1、循环嵌套,(1) for() for() . ,(2) while() do while( ); . ,实例:如何打印4x4个星号(*)?,循环扩展话题,1、break与continue break:终止并跳出最近一层的结构 continue:结束本次循环,跳过循环体中尚未执行的语句,进行下一次是否执行循环体的判断,实例:从控制台输入整数,求前10个正整数的和,循环扩展话题,3、关于goto 如果要直接退出外层循环怎么办? goto + if 也能实现循环 goto的实际应用:统一出口!,goto 语句标号; . 标号:语句;,循环扩展

10、话题,4、关于循环效率 在多重循环中,如果有可能,应当将最长的循环放在最内层,最短的循环放在最外层,以减少CPU跨切循环层的次数,for (row=0; row100; row+) for (col=0; col5; col+ ) sum = sum + arowcol; ,for (col=0; col5; col+ ) for (row=0; row100; row+) sum = sum + arowcol; ,循环扩展话题,4、关于循环效率 提高代码执行效率往往是以减低可读性为代价的,/*代码A */ for (i=0; iN; i+) if (condition) DoSomething(); else DoOtherthing(); ,/* 代码 B */ if (condition) for (i=0; iN; i+) Do

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论