嵌入式C编程 02_流程控制

上传人:沈*** 文档编号:244277057 上传时间:2024-10-03 格式:PPT 页数:40 大小:1.39MB
返回 下载 相关 举报
嵌入式C编程 02_流程控制_第1页
第1页 / 共40页
嵌入式C编程 02_流程控制_第2页
第2页 / 共40页
嵌入式C编程 02_流程控制_第3页
第3页 / 共40页
点击查看更多>>
资源描述
单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,*,*,流程控制,课程安排,什么是流程控制,顺序流程结构,分支流程结构,循环流程结构,回顾什么是,程序,?,程序员将解决某个工程问题的想法通过编程语言组织成程序,如果组织程序?,程序,=,数据(组合),+,语句(组合),回顾有哪些基本数据类型?回顾什么是语句?,表达式加分号,构成语句。,语句就是,计算机的行为动作,!,从回顾开始,想象一下自己参加这个培训班的日子将会怎样度过?,温习上次课程;,预习下次课程;,如果上课日子到来;,到学校上课;,如此循环,直到培训班课程结束,!,这里存在,几种动作过程,(流程)?,生活中的动作过程(流程),顺序流程,分支流程,循环流程,流程分类,A,B,A,B,流程图,N-S,图,P,A,B,真,假,P,B,A,真,假,P,A,假,真,当,P,为真,A,1966,年,,Boehm,和,Jacopini,证明了程序设计语言仅仅使用顺序、选择和循环三种基本控制结构就足以表达出各种其他的形式结构。,所以,利用,顺序结构、分支结构、循环结构,或者这些结构的组合就可以让计算机处理任何工程问题了,程序语言基本控制结构,课程安排,什么是流程控制,顺序流程结构,分支流程结构,循环流程结构,顺序流程结构,从控制台输入一个字符,输出该字符的,ASCII,编码,实例,课程安排,什么是流程控制,顺序流程结构,分支流程结构,循环流程结构,分支流程结构,判断语句:有么为真,要么为假!没有第三种情况,!,语法结构,if(,比较,/,逻辑表达式,),语句一;,语句二;,if,语句,判断整数是否大于,0,、小于,0,、等于,0,、不等于,0,判断整数是否在某个范围之内,输入字符,判断如果是小写字母,则输出该字母,输入字符,判断如果是字母,则输出该字母,实例,语法结构,if(,比较,/,逻辑表达式,),语句一;,语句二;,else,语句三;,语句四;,ifelse,语句,输入字符,判断如果是字母,则输出该字母;否则提示输入非字母,实例,语法结构,if(,比较,/,逻辑表达式,),语句一;,语句二;,else if(,比较,/,逻辑表达式,),语句三;,语句四;,ifelse if,语句,if(,比较,/,逻辑表达式,),语句一;,语句二;,else if(,比较,/,逻辑表达式,),语句三;,语句四;,else,语句五;,语句六;,输入字符,判断如果是小写字母,显示对应大写字母;,如果,是大写字母,显示对应小写字母,输入字符,判断如果是小写字母,显示对应大写字母;,否则如果,是大写字母,显示对应小写字母,输入字符,判断如果是小写字母,显示对应大写字母;,否则,如果是大写字母,显示对应小写字母;,否则,显示输入非字母,输入字符,判断如果是小写字母,显示对应大写字母;否则如果是大写字母,显示对应小写字母;,否则,如果是数字,显示该数字值;,实例,if,分支结构支持,分支嵌套,,嵌套使用时要注意,ifelse,的配对,If,使用注意!,例:,if(a=b),if(b,=c),printf(a,=b=c);,else,printf(a,!=b);,修改后,:if(a=b),if(b,=c),printf(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,执行过程,功能:相当于条件语句,但具有返回值,实例:,int a=20,b=10;,printf(“max is%dn”,a b?a:b);,expr1,取,expr2,值,取,expr3,值,非,0,=0,实验,2-4,:分支流程控制,1,、将学生分数按标准分为优、良、中、差四个级别;,2,、,switch,实现从控制台获得一个字符输入,如果输入,为,m,显示,”good,moning,”,;,如果输入为,a,显示,”good afternoon,”,;,如果输入为,n,显示,”good night,”,;,其他字符则显示“,do,nothing”,;,3,、实现猜拳游戏:模拟两个玩家出拳(石头、剪刀、,布),判断胜、平、负。,上机实验,课程安排,什么是流程控制,顺序流程结构,分支流程结构,循环流程结构,循环流程结构,C,语言可实现循环的语句:,1,、,while,语句,2,、,do while,语句,3,、,for,语句,4,、用,goto,和,if,构成循环,(,永远不要使用,),循环语句种类,语法结构,:,while(,表达式,),循环体语句;,执行流程,:,expr,循环体,假,(0),真,(,非,0),while,while,语句,while,实例,1,、循环打印数值,1100,2,、计算,1100,的累加值:,语法结构:,do,循环体语句;,while(,表达式,);,执行流程,:,do,循环体,expr,假,(0),真,(,非,0),while,dowhile,语句,特点:,至少执行一次循环体,dowhile,实例,1,、循环打印数值,1100,2,、计算,1100,的累加值:,while,循环使用注意,1,、死循环,while(1),语句;,2,、,while(0),与,do while(0),在做什么?,3,、,break,退出循环,while(1),if(,表达式,),break;,语句;,do,语句;,while(1);,do,if(,表达式,),break;,语句;,while(1),语法结构,:,for(,expr1,;,expr2,;,expr3,),循环体语句;,执行流程,:,expr2,循环体,假,(0),真,(,非,0),for,expr1,expr3,for,语句,特点:对于预先知道循环次数时通常用,for,for,实例,1,、循环打印数值,1100,2,、计算,1100,的累加值:,for,循环使用注意,1,、死循环,for(;),语句;,2,、,for,变体,for(;i=100;i+)for(;i=100;),3,、,break,退出循环,for(;),if(,表达式,),break;,语句;,循环扩展话题,1,、循环嵌套,(1)for(),for(),.,(2)while(),do,while();,.,(3)for(;),do,while();,while(),.,内循环,外循环,内循环,实例:如何打印,4x4,个星号,(*)?,循环扩展话题,1,、,break,与,continue,break,:,终止并跳出,最近一层,的结构,continue,:,结束本次循环,跳过,循环体中,尚未执行的语句,进行下一次是否执行循环体的判断,实例:从控制台输入整数,求前,10,个正整数的和,循环扩展话题,3,、关于,goto,如果要直接退出外层循环怎么办?,goto,+if,也能实现循环,goto,的实际应用:,统一出口!,goto,语句标号,;,.,标号:语句,;,循环扩展话题,4,、关于循环效率,在多重循环中,如果有可能,应当将最长的循环放在最内层,最短的循环放在最外层,以减少,CPU,跨切循环层的次数,for(row=0;row100;row+),for(,col,=0;,col,5;,col,+),sum=,sum,+,arowcol,;,for(,col,=0;,col,5;,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+),DoSomething,();,else,for(i=0;iN;i+),DoOtherthing,();,实验,2-5,:循环流程控制,1,、打印,100200,之间的所有素数。,2,、在控制台上打印图形:,3,、百钱买百鸡:,100,钱买,100,鸡:公鸡,1,只,5,钱,母鸡,1,只,3,钱,小鸡,3,只,1,钱。公鸡、母鸡、小鸡分别能买多少只?,上机实验,
展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 管理文书 > 施工组织


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!