嵌入式Linux C语言程序设计基础教程 教学课件 ppt 作者 华清远见嵌入式学院 冯利美 冯建 第5章 程序结构和控制语句

上传人:E**** 文档编号:89404387 上传时间:2019-05-24 格式:PPT 页数:44 大小:460KB
返回 下载 相关 举报
嵌入式Linux C语言程序设计基础教程 教学课件 ppt 作者  华清远见嵌入式学院 冯利美 冯建 第5章 程序结构和控制语句_第1页
第1页 / 共44页
嵌入式Linux C语言程序设计基础教程 教学课件 ppt 作者  华清远见嵌入式学院 冯利美 冯建 第5章 程序结构和控制语句_第2页
第2页 / 共44页
嵌入式Linux C语言程序设计基础教程 教学课件 ppt 作者  华清远见嵌入式学院 冯利美 冯建 第5章 程序结构和控制语句_第3页
第3页 / 共44页
嵌入式Linux C语言程序设计基础教程 教学课件 ppt 作者  华清远见嵌入式学院 冯利美 冯建 第5章 程序结构和控制语句_第4页
第4页 / 共44页
嵌入式Linux C语言程序设计基础教程 教学课件 ppt 作者  华清远见嵌入式学院 冯利美 冯建 第5章 程序结构和控制语句_第5页
第5页 / 共44页
点击查看更多>>
资源描述

《嵌入式Linux C语言程序设计基础教程 教学课件 ppt 作者 华清远见嵌入式学院 冯利美 冯建 第5章 程序结构和控制语句》由会员分享,可在线阅读,更多相关《嵌入式Linux C语言程序设计基础教程 教学课件 ppt 作者 华清远见嵌入式学院 冯利美 冯建 第5章 程序结构和控制语句(44页珍藏版)》请在金锄头文库上搜索。

1、第五章程序结构和控制语句,www.embedu.org,本章的要求,掌握C语言的程序结构 熟悉C语言中的控制语句 熟悉C语言中的转向语句,程序结构,从程序流程的角度来看,C语言中的语句可以分为3种基本结构:顺序结构、分支结构和循环结构。,www.embedu.org,www.embedu.org,程序结构,C语句概述 C语句:以“;”作分隔符,编译后产生机器指令. C语句分类 表达式语句:表达式加分号构成。,www.embedu.org,程序结构,三种基本结构 顺序结构,www.embedu.org,程序结构,选择结构 二分支选择结构,www.embedu.org,程序结构,选择结构 多分支选

2、择结构,www.embedu.org,程序结构,循环结构 当型循环结构,www.embedu.org,程序结构,循环结构 当型循环结构,C语言的控制语句,www.embedu.org,10,控制语句,C语言中的控制语句用于控制程序的流程,以实现程序的各种结构方式,包括条件判断语句、循环语句和转向语句。,www.embedu.org,11,www.embedu.org,条件判断语句,if语句 if (表达式) 语句块1 else 语句块2 常见形式 1)简化形式 if(表达式) 语句块 例如: if(xy) printf(“%d”,x); 2)阶梯形式 3) 嵌套形式,www.embedu.or

3、g,条件判断语句,if(表达式1) 语句块1 else if(表达式2) 语句块2 else if(表达式3) 语句块3 else if(表达式4) 语句块4 . else 语句块n,www.embedu.org,条件判断语句,注意: 语句块:当有若干条语句时,必须用括起来。 表达式: if语句的表达式一般情况下为逻辑表达式或关系表达式。 如:if(a=b 注意:“非零”与“零”的用法 请区分if(x=1)与if(x=1)的不同。,www.embedu.org,案例,例: #include main() float a,b,c,t; a=4; b=5; c=2; if(ab) t=a;a=b;

4、b=t; if(ac) t=a;a=c;c=t; if(bc) t=b;b=c;c=t; printf(“%5.2f,%5.2f,%5.2f”,a,b,c); ,www.embedu.org,条件判断语句,if语句的嵌套 if() if() 语句块1 else 语句块2 else if() 语句块3 else 语句块4,www.embedu.org,条件判断语句,if语句的嵌套 if语句中if与else的配对关系为 else总是与它上面的最近的if配对.书写格式的缩进与否与它们之间的配对无关. 要实行强行的配对关系可以利用 如: if() if() 语句块1 else 语句块2,www.emb

5、edu.org,条件判断语句,条件运算符 在if语句中,表达式为真和假时都执行一条赋值语句并且都是给同一个变量赋值.这时可以把if语句简化为条件运算符. 表达式1?表达式2:表达式3; if (ab) max=a; else max=b; max=(ab)?a:b;,www.embedu.org,条件判断语句,条件运算符 条件运算符的执行顺序 先求表达式1,若为真则求解表达式2,整个表达式的值为表达式2的值;若表达式1的值为假则求解表达式3,整个表达式的值为表达式3的值. 比较条件运算符与其他运算符的优先级别和结合性 条件表达式中表达式1的类型可以与表达式2和表达式3的类型不一致.表达式2与表

6、达式3的类型也可以不一致,www.embedu.org,条件判断语句,switch语句 switch (表达式) case 常量表达式1:语句块1;break; case 常量表达式2:语句块2; break; . case 常量表达式n:语句块n; break; default :语句块n+1 ,www.embedu.org,条件判断语句,使用: switch中的表达式可以是整型或字符型表达式 (也可以是枚举类型,新标准的c语言允许为任意类型.) 每个常量表达式的值必须各不相同,否则将会出现矛盾。 当表达式的值与case后面的常量表达式值相等时就执行此case后面的语句。 “case 常量:

7、”只起语句标号的作用。,www.embedu.org,条件判断语句,break语句在switch中的作用:强行跳出switch体转到其它某条语句,每个case后面应有一个break语句(否则程序的执行顺序将改变),default分支后的break可以省略。 各个case出现的先后顺序不影响程序的执行结果. 多个case可以执行一组语句.,条件判断语句,加break后的switch语句的执行过程如下,www.embedu.org,23,www.embedu.org,案例,switch (info-flash_id ,www.embedu.org,循环语句,循环结构程序 goto语句构成循环 wh

8、ile构成循环 dowhile循环 for循环 循环的嵌套使用:一个循环中又包含另一个循环成为循环的嵌套.上面讲到的三种循环可以互相嵌套.,www.embedu.org,循环语句,goto语句构成循环 #include 求 int main() int i, sum=0; i=1; 运行结果为:5050 loop :if (i=100) sum=sum+i; i+; goto loop; printf(“%d”,sum); return 0; ,www.embedu.org,循环语句,while语句构成循环 例如:求 int main() int i=1,sum=0; while (i=100

9、) sum=sum+i; i+; printf(“%d”,sum); return 0; ,www.embedu.org,循环语句,do-while语句构成循环 例如:求 int main() int i,sum=0; i=1; dosum=sum+i; i+; while(i=100); printf(“%d”,sum); 从上面对一个问题的两种解决方法可以看出: while循环与do_while循环在绝大多数情况下是可以相互转化的.,www.embedu.org,循环语句,各种循环的比较 注意while与do_while 循环中(条件)后面的“;”。 while与do_while执行循环体

10、与判断的顺序不同。 各自的应用场合不同。while强调“条件是否满足”do_while强调“动作的行为” for语句为非条件循环语句,功能比条件循环要强,也更灵活,凡能使用条件循环的场合,用for循环都能实现。 各种形式的循环都可以用来处理同一问题,一般情况下它们可以互相替代。,www.embedu.org,循环语句,for语句构成循环 执行过程为: 先求解表达式1(初值); 求解表达式2,并判定其值是否为真(非0),若为真,则执行其所包含的语句,然后执行下面的步骤3;若为假,则直接执行步骤5; 求解表达式3; 转回执行步骤2; 执行for下面的语句. for(expression1; exp

11、ression2; expression3) statements; ,www.embedu.org,循环语句,for语句构成循环 例如:求 将变化为: for(i=1;i=100;i+) sum=sum+i; ,www.embedu.org,循环语句,for语句构成循环 for语句中的表达式1可以省略,但在for循环之前应给循环变量赋值. 例如:i=1;for(;i=100;i+) sum=sum+i; 表达式2也可以省略,但循环将陷入死循环. 例如:for(i=1;i+) sum=sum+i; 表达式3也可以省略,但应在循环体中增加使循环变量值改变的语句. 例如:for(sum=0,i=0

12、;i=100;) sum=sum+i; i+;,www.embedu.org,循环语句,表达式1和表达式3同时省略也允许, 例如:i=1;sum=0; for(;i=100;) sum=sum+i; i+; 这是完全与while循环等同. 三个表达式都可以省略,但“;”不能省略。 for(;) sum=sum+i; 循环将无休止的执行下去.,www.embedu.org,循环语句,注意: for语句中的、皆可省略,但相应的分号不可省略; for(; ;) 表达式2略去时,此项求值总为真,除非循环体中有跳转语句(如:break,goto,return),否则此循环为死循环。,www.embedu

13、.org,循环语句,for (;) main_loop (); /board.c,C语言的转向语句,www.embedu.org,36,www.embedu.org,转向语句,break语句 用于从循环体内跳出循环体,即提前结束循环。 break只能用在循环语句和switch语句中. for(r=1;r100) break; printf(“%f”,area); ,www.embedu.org,转向语句,www.embedu.org,转向语句,www.embedu.org,转向语句,continue语句 结束本次循环,接着判定下一次是否执行循环。 continue与break的区别: cont

14、inue直结束本次循环,而break终止本层循环. 例: int main() int n; for(n=100;n=200;n+) if (n%3 = 0) continue; printf(“%d”,n); ,www.embedu.org,转向语句,www.embedu.org,转向语句,return语句 return语句主要用于终止包含它的函数的执行,当然终止包含return语句的分支语句或循环语句,执行完return语句之后,将把控制转移给调用函数。 若return终止的为主函数,控制返回到操作系统。根据它所在函数返回值的类型,return对运算后,将其数值转换为相应的函数类型,返回给

15、调用函数。 return语句的一般形式:return ( ) ;,www.embedu.org,实验,1已知三个数a,b,c,找出最大值放于max中。 2编写一个程序,用while语句,该程序读取整数,直到输入0,输入终止后,程序应该报告输入的偶数(不包括0)总个数,偶数的平均值,输入的奇数总个数以及奇数的平均值。 3 Daphne以10%的单利息投资了100美元(也就是说,每年投资赢的利息等于原始投资的10%)。Deirdre则以每年5%的复合利息投资了100美元(也就是说,利息是当前结余的5%,其中包括以前的利息)。编写一个程序,计算需要多少年Deirdre的投资额才会超过Daphne,并且显示出到那时两个人的投资额。,www.embedu.org,实验,4求和s= 3+33+333 5编写一个程序打印出下列图形: * * * * *,

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 高等教育 > 大学课件

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号