null21天学51单片机开发21天学51单片机开发第五讲:C51的语句 课程安排课程安排声明语句
表达式语句
复合语句
循环语句
条件语句
开关语句
跳转语句
函数调用语句
返回语句
声明语句声明语句声明语句用于声明变量或者自定义函数。通过声明语句,可以指定变量的类型、初始值以及函数的类型和形参等。
声明语句的一般形式如下:
类型
说明
关于失联党员情况说明岗位说明总经理岗位说明书会计岗位说明书行政主管岗位说明书
符 变量名(=初始值);
类型说明符 函数名(形参);
值得注意的几点:
类型说明符为C51语言中的变量或者函数类型。
变量名或者函数名为读者定义的标识符,应符合C51标识符的命名规则。
如果在声明变量的时候需要指定初始值,则可以使用“=”来指定,否则“=”可以省略。
对于函数,如果不需要形参,则可以使用void来代替。表达式语句 表达式语句 表达式语句是最常用的语句,一般来说,任何一种表达式在结尾加上“;”便可以构成一个合法的表达式语句。
根据所使用表达式的不同,表达式语句可以执行算术运算、逻辑运算或者使单片机执行某种动作。
表达式语句执行某种运算,但有可能并不进行赋值操作。 复合语句 复合语句 复合语句是使用一对花括号“{”和“}”,将一些语句组合构成的一个整个语句结构。
在使用复合语句时,应注意如下几点:
在C51语言中,复合语句可以当作一个语句来处理。但和一般的语句不同的是最后的“}”后不能有分号“;”。
由于C51语言是一个顺序结构的语句,因此,在复合语句执行时,其内部的语句也是按照顺序自上而下执行的,除非遇到跳转或者分支语句。
复合语句内部定义的变量只在复合语句内部有效。如果内部定义的变量和外部定义的变量重名,则将屏蔽外部的变量。
自定义的函数也是一个复合语句。 循环语句 循环语句 循环语句提供了一种以最少的代码来执行多条重复语句的形式。
C51语言中的循环语句有如下几类:
for语句
while语句
do-while语句
for语句 for语句 在程序中使用for语句的时候,应特别注意如下几点:
一定要特别注意循环条件和循环变量的变化方式,保证循环在一定条件满足的时候能够结束,防止出现死循环的情况。
for语句中的三个表达式都是可选择项,但“;”不能省。例如,for(;;)是一个合法的语句,但其表示一个无限死循环。
for循环语句可以实现多级嵌套。
当循环体语句只有一条的时候,可以省略花括号“{}”,否则不可以省略。 for(表达式1;表达式2;表达式3)
{
语句;
}while语句 while语句 在程序中使用while语句的时候,应特别注意如下几点:
在循环体语句中一定要加入能够改变while表达式取值的语句,保证循环在一定条件满足的时候能够结束,防止出现死循环的情况。
while语句的表达式可以永远为真,此时表示一个无限死循环。例如,while(1)。
while循环语句可以实现多级嵌套。
当循环体语句只有一条的时候,可以省略花括号“{}”,否则不可以省略。
while语句循环体内允许空语句。 while(表达式)
{
语句;
}do-while语句 do-while语句 在程序中使用do-while语句的时候,应特别注意如下几点:
在循环体语句中一定要加入能够改变while表达式取值的语句,保证循环在一定条件满足的时候能够结束,防止出现死循环的情况。
do-while语句和while语句区别在于执行循环体语句的顺序不同。
do-while循环语句也可以实现多级嵌套。
当循环体语句只有一条的时候,可以省略花括号“{}”,否则不可以省略。 do
{
语句;
}while(表达式);条件语句 条件语句 条件语句是根据表达式的取值来决定程序走向的语句,最常用的便是if条件语句。
根据if语句中分支的不同,可以分为:
单分支if语句
双分支if语句
多分支if语句单分支if语句 单分支if语句 if为C51的关键字,表达式一般为逻辑表达式或者关系表达式,“{}”内为条件分支语句。
单分支if语句在执行时,首先判断表达式的结果,如果为真则执行分支语句,执行完后,继续执行后续程序;如果为假则跳过分支语句,执行后续程序。
如果if分支中只有一条语句,则“{}”可以省略,否则不可以省略。 if (表达式)
{
语句;
}双分支if语句 双分支if语句 其中,if和else为C51的关键字,表达式一般为逻辑表达式或者关系表达式,“{}”内为条件分支语句。
双分支if语句在执行时,首先判断表达式的结果,如果为真则执行分支语句1,如果为假则执行分支语句2。
同样,如果if分支中只有一条语句,则“{}”可以省略,否则不可以省略。 if (表达式)
{
语句1;
}
else
{
语句2;
}多分支if语句 多分支if语句 其中,当if和else为C51的关键字,表达式1~n一般为逻辑表达式或者关系表达式,“{}”内为条件分支语句。
多分支if语句在执行时,顺次计算表达式1~n的值,如果为真,则执行相应的分支语句。如果所有的条件都不满足,则执行else分支中的语句。
同样,如果if分支中只有一条语句,则“{}”可以省略,否则不可以省略。 if (表达式1)
{
语句1;
}
else if (表达式2)
{
语句2;
}
else if (表达式n)
{
语句n;
else
{
语句n+1;
}开关语句 开关语句 开关语句是C51语言中另外一种实现分支结构的语句。
在程序中使用switch开关语句的时候,应特别注意如下几点:
一个case分支语句要分配一个break语句来跳出开关语句,否则将接着执行下面的case分支语句。
如果希望在没有符合的条件时不做任何处理,则可以省略default分支语句。 switch(表达式)
{
case 常量表达式1:
语句分支1; break;
case 常量表达式2:
语句分支2; break;
case 常量表达式3:
语句分支3; break;
case 常量表达式n:
语句分支n; break;
default:
语句分支n+1;
}跳转语句 跳转语句 跳转语句用于根据条件来跳转执行 。
常用的跳转语句有如下几种:
goto语句
break语句
continue语句 goto语句goto语句goto语句是一种无条件跳转语句,其一般形式如下:
goto 语句标号;
其中,goto为C51的标识符,语句标号为需要跳转到的语句行的标识符。
语句标号由用户自己定义,且需要满足C51关于标识符的命名规则。
goto语句在执行时,将直接跳转到语句标号处执行。
使用goto语句可以用来跳出多重循环,不过只可以从内层循环跳到外层循环,而不能从外层循环跳到内层循环中。 break语句 break语句 break语句用于无条件跳出循环结构或者开关分支结构,其一般形式如下:
break;
这里,break为C51的关键字。
当break用于switch开关语句中时,一般放置在case分支语句的结束,可使程序跳出switch,而执行switch以后的语句。
在do-while、for、while循环语句中使用时,break语句可以强制跳出循环,常和if语句在一起使用。 continue语句 continue语句 continue语句用于强制结束当前循环体内部的后续语句,转而执行下一次循环,其一般形式如下:
continue;
其中,continue为C51的关键字。
continue语句一般只用在for、while、do-while等循环结构的循环体中。 函数调用语句 函数调用语句 函数调用语句用于在程序中调用系统内部的函数或者用户自定义的函数。
在函数调用时,在函数名称后面加上分号便可构成函数调用语句。
在使用时,需要注意的是参数的传递和返回值。
详细内容将在函数部分进行讲解。空语句 空语句 顾名思义,空语句便是不执行如何运算和操作的语句。
在C51语言中,空语句只有一个分号“;”来表示,相当于汇编语言中的nop指令。
空语句常用来和循环语句一起使用,从而构成一定时间的延时。 返回语句 返回语句 返回语句用于函数的末尾,强制终止当前函数的执行,并返回到程序调用该函数的位置。返回语句的一般形式如下:
return 表达式;
其中,return为C51关键字,表达式是需要返回的值。
如果一个函数没有返回值,则可以省略表达式,甚至还可以省略return。 性格决定命运, 专注成就人生性格决定命运, 专注成就人生www.rzchina.net
源智天下