4 第四章 C51流程控制语句.pptx
《4 第四章 C51流程控制语句.pptx》由会员分享,可在线阅读,更多相关《4 第四章 C51流程控制语句.pptx(26页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、 第四章第四章 C51流程控制语句流程控制语句4.1 表达式语句及复合语句表达式语句及复合语句4.1.1 表达式语句表达式语句在表达式的后边加一个分号在表达式的后边加一个分号“;”就构成了表达式语句就构成了表达式语句,如如:a=b+;x=8;y=7;+k;可以一行放一个表达式形成表达式语句,也可以一行放多个表达式可以一行放一个表达式形成表达式语句,也可以一行放多个表达式形成表达式语句,这时每个表达式后面都必须带形成表达式语句,这时每个表达式后面都必须带“;”号,另外,还号,另外,还可以仅由可以仅由个分号个分号“;”占一行形成一个表达式语句,这种语句称为占一行形成一个表达式语句,这种语句称为空语
2、句。空语句。空语句在程序设计中通常用于两种情况:空语句在程序设计中通常用于两种情况:(1)在程序中为有关语句提供标号,用以标记程序执行的位置。)在程序中为有关语句提供标号,用以标记程序执行的位置。例如采用下面的语句可以构成一个循环。例如采用下面的语句可以构成一个循环。repeat:;:;goto repeat;(2)在用)在用while语句构成的循环语句后面加一个分号,形成一个不语句构成的循环语句后面加一个分号,形成一个不执行其它操作的空循环体。这种结构通常用于对某位进行判断,当不满执行其它操作的空循环体。这种结构通常用于对某位进行判断,当不满足条件则等待,满足条件则执行。足条件则等待,满足条
3、件则执行。【例【例4-1】下面这段子程序用于读取】下面这段子程序用于读取8051单片机的串行口的数据,当单片机的串行口的数据,当没有接收到则等待,当接收到,接收数据后返回,返回值为接收的数据。没有接收到则等待,当接收到,接收数据后返回,返回值为接收的数据。#include char getchar()char c;while(!RI);/当接收中断标志位当接收中断标志位RI为为0则等待,当接收中断标志位则等待,当接收中断标志位 为为1则结束等待则结束等待c=SBUF;RI=0;return(c);4.1.2 复合语句复合语句 复合语句是由若干条语句组合而成的一种语句,在复合语句是由若干条语句组
4、合而成的一种语句,在C51中,用一个中,用一个大括号大括号“”将若干条语句括在一起就形成了一个复合语句,复合语将若干条语句括在一起就形成了一个复合语句,复合语句最后不需要以分号句最后不需要以分号“;”结束,但它内部的各条语句仍需以分号结束,但它内部的各条语句仍需以分号“;”结束。复合语句的一般形式为:结束。复合语句的一般形式为:局部变量定义;局部变量定义;语句语句1;语句语句2;复合语句在执行时,其中的各条单语句按顺序依次执行,整个复复合语句在执行时,其中的各条单语句按顺序依次执行,整个复合语句在语法上等价于一条单语句,因此在合语句在语法上等价于一条单语句,因此在C51中可以将复合语句视为中可
5、以将复合语句视为一条单语句。通常复合语句出现在函数中,实际上,函数的执行部分一条单语句。通常复合语句出现在函数中,实际上,函数的执行部分(即函数体)就是一个复合语句;复合语句中的单语句一般是可执行语(即函数体)就是一个复合语句;复合语句中的单语句一般是可执行语句,此外还可以是变量的定义语句(说明变量的数据类型)。在复合语句,此外还可以是变量的定义语句(说明变量的数据类型)。在复合语句内部语句所定义的变量,称为该复合语句中的局部变量,它仅在当前句内部语句所定义的变量,称为该复合语句中的局部变量,它仅在当前这个复合语句中有效。利用复合语句将多条单语句组合在这个复合语句中有效。利用复合语句将多条单语
6、句组合在起,以及在起,以及在复合语句中进行局部变量定义是复合语句中进行局部变量定义是C51语言的一个重要特征。语言的一个重要特征。4.2 C51程序基本结构与相关语句程序基本结构与相关语句4.2.1 C51的基本结构的基本结构一顺序结构一顺序结构顺顺序序结结构是最基本、最构是最基本、最简单简单的的结结构,在构,在这这种种结结构中,程构中,程序由低地址到高地址依次序由低地址到高地址依次执执行,行,图图4-1给给出出顺顺序序结结构流构流程程图图,程序先,程序先执执行行A操作,操作,然后再然后再执执行行B操作。操作。AB图图4-1顺顺序序结结构流程构流程图图 选择结构可使程序根据不同的情况,选择执行
7、不同的分支,在选选择结构可使程序根据不同的情况,选择执行不同的分支,在选择结构中,程序先都对一个条件进行判断。当条件成立,即条件语句为择结构中,程序先都对一个条件进行判断。当条件成立,即条件语句为“真真”时,执行一个分支,当条件不成立时,即条件语句为时,执行一个分支,当条件不成立时,即条件语句为“假假”时,时,执行另一个分支。如图执行另一个分支。如图4-2,当条件,当条件S成立时,执行分支成立时,执行分支A,当条件,当条件P不成不成立时,执行分支立时,执行分支B。二选择结构二选择结构条件P语句A语句B成立不成立 在在C51中,实现选择结构的语句为中,实现选择结构的语句为if/else,if/e
8、lse if语句。另外在语句。另外在C51中还支持多分支结构,多分支结构既可以通过中还支持多分支结构,多分支结构既可以通过if和和else if语句嵌套语句嵌套实现,可用实现,可用swith/case语句实现。语句实现。在程序处理过程中,有时需要在程序处理过程中,有时需要某一段程序重复执行多次,这时就需某一段程序重复执行多次,这时就需要循环结构来实现,循环结构就是能要循环结构来实现,循环结构就是能够使程序段重复执行的结构。循环结够使程序段重复执行的结构。循环结构又分为两种:当(构又分为两种:当(while)型循环)型循环结构和直到(结构和直到(do.while)型循环结)型循环结构。构。(1)
9、当型循环结构)当型循环结构当型循环结构如图当型循环结构如图4-3,当条件,当条件P成成立(为立(为“真真”)时,重复执行语句)时,重复执行语句A,当条件不成立(为,当条件不成立(为“假假”)时才停)时才停止重复,执行后面的程序。止重复,执行后面的程序。三循环结构三循环结构图图4-3 当型循环结构当型循环结构 (2)直到型循环结构)直到型循环结构直到型循环结构如图直到型循环结构如图4-4,先执,先执行语句行语句A,再判断条件,再判断条件P,当条件,当条件成立(为成立(为“真真”)时,再重复执)时,再重复执行语句行语句A,直到条件不成立(为,直到条件不成立(为“假假”)时才停止重复,执行后面)时才
10、停止重复,执行后面的程序。的程序。条件P语句A成立不成 立图4-4 直到型循环结构构成循环结构的语句主要有:构成循环结构的语句主要有:while、do while、for、goto等。等。4.2.2 if语句语句if语句是语句是C51中的一个基本条件选择语句,它通常有三种格式:中的一个基本条件选择语句,它通常有三种格式:(1)if(表达式)(表达式)语句;语句;(2)if(表达式)(表达式)语句语句1;else 语句语句2;(3)if(表达式(表达式1)语句语句1;else if(表达式(表达式2)语句语句2;else if(表达式(表达式3)语句语句3;else if(表达式(表达式n-1)
11、语句语句n-1;else 语句语句n;【例【例4-2】if语句的用法。语句的用法。(1)if (x!=y)printf(“x=%d,y=%dn”,x,y);执行上面语句时,如果执行上面语句时,如果x不等于不等于y,则输出,则输出x的值和的值和y的值。的值。(2)if (xy)max=x;else max=y;执行上面语句时,如执行上面语句时,如x大于大于y成立,则把成立,则把x送给最大值变量送给最大值变量max,如,如x大于大于y不成立,则把不成立,则把y送给最大值变量送给最大值变量max。使。使max变量得到变量得到x、y中的大中的大数。数。(3)if (score=90)printf(“Y
12、our result is an An”);else if (score=80)printf(“Your result is an Bn”);else if (score=70)printf(“Your result is an Cn”);else if (score=60)printf(“Your result is an Dn”);else printf(“Your result is an En”);执行上面语句后,能够根据分数执行上面语句后,能够根据分数score分别打出分别打出A、B、C、D、E五五个等级。个等级。4.2.3 switch/case语句语句if语句通过嵌套可以实现多分
13、支结构,但结构复杂。语句通过嵌套可以实现多分支结构,但结构复杂。switch是是C51中提供的专门处理多分支结构的多分支选择语句。它的格式如下:中提供的专门处理多分支结构的多分支选择语句。它的格式如下:switch(表达式)(表达式)case 常量表达式常量表达式1:语句语句1;break;case 常量表达式常量表达式2:语句语句2;break;case 常量表达式常量表达式n:语句语句n;break;default:语句语句n+1;说明如下:说明如下:(1)switch后面括号内的表达式,可以是整型或字符型表达式。后面括号内的表达式,可以是整型或字符型表达式。(2)当该表达式的值与某一)当
14、该表达式的值与某一“case”后面的常量表达式的值相等后面的常量表达式的值相等时,就执行该时,就执行该“case”后面的语句,然后遇到后面的语句,然后遇到break语句退出语句退出switch语句。若表达式的值与所有语句。若表达式的值与所有case后的常量表达式的值都不相同,则执后的常量表达式的值都不相同,则执行行default后面的语句,然后退出后面的语句,然后退出switch结构。结构。(3)每一个)每一个case常量表达式的值必须不同否则会出现自相矛盾的常量表达式的值必须不同否则会出现自相矛盾的现象。现象。(4)case语句和语句和default语句的出现次序对执行过程没有影响。语句的出
15、现次序对执行过程没有影响。(5)每个)每个case语句后面可以有语句后面可以有“break”,也可以没有。有,也可以没有。有break语句,语句,执行到执行到break则退出则退出switch结构,若没有,则会顺次执行后面的语句,直结构,若没有,则会顺次执行后面的语句,直到遇到到遇到break或结束。或结束。(6)每一个)每一个case语句后面可以带一个语句,也可以带多个语句,还可语句后面可以带一个语句,也可以带多个语句,还可以不带。语句可以用花括号括起,也可以不括。以不带。语句可以用花括号括起,也可以不括。(7)多个)多个case可以共用一组执行语句。可以共用一组执行语句。【例【例4-3】s
16、witch/case语句的用法。语句的用法。对学生成绩划分为对学生成绩划分为AD,对应不同的百分制分数,要求根据不同的等级,对应不同的百分制分数,要求根据不同的等级打印出它的对应百分数。可以通过下面的打印出它的对应百分数。可以通过下面的switch/case语句实现。语句实现。switch(grade)case A:printf(“90100n”););break;case B:printf(“8090n”););break;case C:printf(“7080n”););break;case D:printf(“6070n”););break;case E:printf(“60n”););
17、break;default:printf(“error”n)4.2.4 while语句语句 while语句在语句在C51中用于实现当型循环结构,它的格式如下:中用于实现当型循环结构,它的格式如下:while(表达式)(表达式)语句;语句;/*循环体循环体*/while语句后面的表达式是能否循环的条件,后面的语句是循环体。语句后面的表达式是能否循环的条件,后面的语句是循环体。当表达式为非当表达式为非0(真)时,就重复执行循环体内的语句;当表达式为(真)时,就重复执行循环体内的语句;当表达式为0(假),则中止(假),则中止while循环,程序将执行循环结构之外的下一条语句。它循环,程序将执行循环结
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 第四章 C51流程控制语句 第四 C51 流程 控制 语句
限制150内