《继电器蜂鸣器数码管编程.ppt》由会员分享,可在线阅读,更多相关《继电器蜂鸣器数码管编程.ppt(6页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、while语句语句 while语句在语句在C51中用于实现当型循环结构,它的格式如下:中用于实现当型循环结构,它的格式如下:while(表达式)(表达式)语句;语句;/*循环体循环体*/while语句后面的表达式是能否循环的条件,后面的语句是循环体。当表达式语句后面的表达式是能否循环的条件,后面的语句是循环体。当表达式为非为非0(真)时,就重复执行循环体内的语句;当表达式为(真)时,就重复执行循环体内的语句;当表达式为0(假),则中止(假),则中止while循环,程序将执行循环结构之外的下一条语句。它的特点是:先判断条件,循环,程序将执行循环结构之外的下一条语句。它的特点是:先判断条件,后执行
2、循环体。在循环体中对条件进行改变,然后再判断条件,如条件成立,则后执行循环体。在循环体中对条件进行改变,然后再判断条件,如条件成立,则再执行循环体,如条件不成立,则退出循环。如条件第一次就不成立,则循环体再执行循环体,如条件不成立,则退出循环。如条件第一次就不成立,则循环体一次也不执行。一次也不执行。【例】【例】i=1;while(i10)a=a+1;i=i+1;for(表达式(表达式1;表达式;表达式2;表达式;表达式3)语句;语句;/*循环体循环体*/for语句后面带三个表达式,它的执行过程如下:语句后面带三个表达式,它的执行过程如下:(1)先求解表达式)先求解表达式1的值。的值。(2)求
3、解表达式)求解表达式2的值,如表达式的值,如表达式2的值为真,则执行循环休中的语句,的值为真,则执行循环休中的语句,然后执行下一步(然后执行下一步(3)的操作,如表达式)的操作,如表达式2的值为假,则结束的值为假,则结束for循环,转循环,转到最后一步。到最后一步。(3)若表达式)若表达式2的值为真,则执行完循环体中的语句后,求解表达式的值为真,则执行完循环体中的语句后,求解表达式3,然后转到第四步。,然后转到第四步。(4)转到()转到(2)继续执行。)继续执行。(5)退出)退出for循环,执行下面的一条语句。循环,执行下面的一条语句。【例】【例】for(j=0;j125;j+);在在for循
4、环中,一般表达式循环中,一般表达式1为初值表达式,用于给循环变量赋初值;为初值表达式,用于给循环变量赋初值;表达式表达式2为条件表达式,对循环变量进行判断;表达式为条件表达式,对循环变量进行判断;表达式3为循环变量更新表为循环变量更新表达式,用于对循环变量的值进行更新,使循环变量能不满足条件而退出循达式,用于对循环变量的值进行更新,使循环变量能不满足条件而退出循环。环。for语句语句 在一个循环的循环体中允许又包含一个完整的循环结构,这种结在一个循环的循环体中允许又包含一个完整的循环结构,这种结构称为循环的嵌套。外面的循环称为外循环,里面的循环称为内循环,构称为循环的嵌套。外面的循环称为外循环
5、,里面的循环称为内循环,如果在内循环的循环体内又包含循环结构,就构成了多重循环。如果在内循环的循环体内又包含循环结构,就构成了多重循环。【例】用嵌套结构构造一个延时程序。【例】用嵌套结构构造一个延时程序。void delay1ms(unsigned int i)unsigned char j;while(i-)for(j=0;j125;j+);/延时延时1ms的延时语句(的延时语句(12M晶振时)晶振时)这里,用内循环构造一个基准的延时,调用时通过这里,用内循环构造一个基准的延时,调用时通过参数设置外循环的次数,这样就可以形成各种延时关系。参数设置外循环的次数,这样就可以形成各种延时关系。循环
6、的嵌套循环的嵌套宏定义指令是指用一些标示符作为宏定义名,来替换宏定义指令是指用一些标示符作为宏定义名,来替换其他一些符号或者常量的其他一些符号或者常量的 预处理命令。使用宏定义指令,预处理命令。使用宏定义指令,可以减少程序中字符串输入的工作量,而且可以提高程可以减少程序中字符串输入的工作量,而且可以提高程序的可移植性。序的可移植性。格式:格式:#define 标示符标示符 字符串字符串标示符就是我们定义的宏名,标示符就是我们定义的宏名,字符串字符串 是要替换的对象是要替换的对象【例】【例】#define uchar unsigned char#define 宏定义指令宏定义指令数组的格式数组的
7、格式n n格式为:类型说明符格式为:类型说明符格式为:类型说明符格式为:类型说明符 数组名数组名数组名数组名 常量表达式常量表达式常量表达式常量表达式=值,值值,值值,值值,值值值值值;n n其中,类型说明符是任一种基本数据类型或构造数据类型。其中,类型说明符是任一种基本数据类型或构造数据类型。其中,类型说明符是任一种基本数据类型或构造数据类型。其中,类型说明符是任一种基本数据类型或构造数据类型。数组名是数组名是数组名是数组名是用户定义的数组标识符。用户定义的数组标识符。用户定义的数组标识符。用户定义的数组标识符。方括号中的常量表达式表示数据元素的个数,方括号中的常量表达式表示数据元素的个数,
8、方括号中的常量表达式表示数据元素的个数,方括号中的常量表达式表示数据元素的个数,也称为数组的长度。也称为数组的长度。也称为数组的长度。也称为数组的长度。n n例如:例如:例如:例如:n nint a10;int a10;说明整型数组说明整型数组说明整型数组说明整型数组a a,有,有,有,有1010个元素。个元素。个元素。个元素。n nfloat b10,c20;float b10,c20;说明实型数组说明实型数组说明实型数组说明实型数组b b,有,有,有,有1010个元素,实型数组个元素,实型数组个元素,实型数组个元素,实型数组c c,有,有,有,有2020个元素。个元素。个元素。个元素。n
9、nchar ch20;char ch20;说明字符数组说明字符数组说明字符数组说明字符数组chch,有,有,有,有2020个元素。个元素。个元素。个元素。数组的初始赋值规定数组的初始赋值规定n n1.1.可以只给部分元素赋初值。当可以只给部分元素赋初值。当可以只给部分元素赋初值。当可以只给部分元素赋初值。当 中值的个数少于元素个数时,中值的个数少于元素个数时,中值的个数少于元素个数时,中值的个数少于元素个数时,只给前面部分元素赋值。例如:只给前面部分元素赋值。例如:只给前面部分元素赋值。例如:只给前面部分元素赋值。例如:int a10=0,1,2,3,4;int a10=0,1,2,3,4;表
10、示只给表示只给表示只给表示只给a0a0a45a45个元素赋值,而后个元素赋值,而后个元素赋值,而后个元素赋值,而后5 5个元素自动赋个元素自动赋个元素自动赋个元素自动赋0 0值。值。值。值。n n2.2.只能给元素逐个赋值,不能给数组整体赋值。只能给元素逐个赋值,不能给数组整体赋值。只能给元素逐个赋值,不能给数组整体赋值。只能给元素逐个赋值,不能给数组整体赋值。例如给十个元素例如给十个元素例如给十个元素例如给十个元素全部赋全部赋全部赋全部赋1 1值,只能写为:值,只能写为:值,只能写为:值,只能写为:int a10=1,1,1,1,1,1,1,1,1,1;int a10=1,1,1,1,1,1
11、,1,1,1,1;而不能写为:而不能写为:而不能写为:而不能写为:int int a10=1;a10=1;n n3.3.如不给可初始化的数组赋初值,则全部元素均为如不给可初始化的数组赋初值,则全部元素均为如不给可初始化的数组赋初值,则全部元素均为如不给可初始化的数组赋初值,则全部元素均为0 0值。值。值。值。Int a10;Int a10;n n4.4.如给全部元素赋值,则在数组说明中,如给全部元素赋值,则在数组说明中,如给全部元素赋值,则在数组说明中,如给全部元素赋值,则在数组说明中,可以不给出数组元素的可以不给出数组元素的可以不给出数组元素的可以不给出数组元素的个数。例如:个数。例如:个数。例如:个数。例如:int a5=1,2,3,4,5;int a5=1,2,3,4,5;可写为:可写为:可写为:可写为:int a=1,2,3,4,5;int a=1,2,3,4,5;动态赋动态赋动态赋动态赋值可以在程序执行过程中,对数组作动态赋值。值可以在程序执行过程中,对数组作动态赋值。值可以在程序执行过程中,对数组作动态赋值。值可以在程序执行过程中,对数组作动态赋值。这时可用循环语句配这时可用循环语句配这时可用循环语句配这时可用循环语句配合合合合scanfscanf函数逐个对数组元素赋值。函数逐个对数组元素赋值。函数逐个对数组元素赋值。函数逐个对数组元素赋值。
限制150内