“学会学习”包含着一系列与掌握知识有关的能力:阅读能力、书写能力、观察周围世界现象的能力、思考能力、用语言表达自己的思想的能力。当然,一般发展是学习和教育的一个极其重要的因素,但是起着同样重要作用的还有那些基本知识,如果不识记和牢固地保持这些基本知识,那就不可能有一般发展,因为所谓一般发展,就是要不断地去掌握知识,而要做到这一点,则必须学会学习。7至11岁的儿童的大脑正处于迅猛发育的过程中。......
2023-12-03
C语言的程序是由语句构成的,若干条语句有序地组织起来实现一定的功能。C语言程序有三种基本结构,即顺序结构、选择(分支)结构和循环结构。
(1)顺序结构:程序自上向下逐条顺序执行。
(2)选择(分支)结构:根据表达式的值选择执行不同分支的程序。
(3)循环结构:程序执行中根据某一条件的存在重复执行同一部分,直到条件不满足时终止循环操作。
C语言提供了多种语句实现这些程序结构。下面介绍常用的C语言语句。
4.4.1 表达式语句和复合语句
1.表达式语句
表达式语句是最基本的语句,语句中没有关键词。
表达式语句由个表达式和一个分号“;”构成,其一般格式如下:
执行表达式语句即是计算表达式的值。例如:
1)空语句
C语言程序中有一个特殊的表达式语句,称为空语句。空语句只有一个“;”,它的功能是什么也不做,但执行它和执行其他语句一样,需要占用CPU一定的时间,因此常用于延时。
2)函数调用
函数调用是调用已经定义的函数(或内置的库函数),由函数名、实际参数表加上分号“;”组成。其一般形式为:
执行函数语句就是调用函数体并把实际参数赋予函数定义中的形式参数。然后,执行被调用函数体中的语句。例如,前面程序中延时函数delay()的调用。
2.复合语句
用“{}”将一组语句括起来就构成了复合语句。例如:
是一条复合语句。复合语句内的各条语句都必须以分号“;”结束,但在括号“}”外不能加分号。
4.4.2 选择语句
选择(分支)语句是判定所给定的条件是否满足,根据判定的结果(真或假)决定执行给出的操作之一。
1.基本if语句
基本if语句的一般格式如下:
if语句的功能是:如果“表达式”的结果为“真”,则执行花括号内的语句组。否则,跳过语句组继续执行其下面的语句。
基本if语句的执行流程图如图4-46所示。
图4-46 基本if语句执行流程图
if语句中的“表达式”可以是任何形式的表达式,常用的是逻辑表达式或关系表达式。只要表达式的值“非0",即可执行花括号内的语句组。例如,以下语句都是合法的。
if语句中的“表达式”必须用“()”括起来。
if语句中的语句组如果只有一条语句,“{}”可以省略;若语句组有多条语句,则必须用“{}”括起来。这一点,初学者在使用中容易出错。
例如,模拟汽车转向灯的控制,可以通过下面操作实现。
【实训4.2】用if语句实现对模拟汽车转向灯的控制。参考程序:
2.if-else语句
i f-else语句的一般格式如下:
if-else语句的功能是:如果“表达式”的值为“真”,则执行语句组1;如果“表达式”的值为“假”,则执行语句组2。if-else语句的流程图如图4-47所示。
图4-47 if-else语句的流程图
3.if-else-if语句
if-else-if语句是多分支语句,它的一般格式如下:
从if-else-if语句格式中可以看出,它是if-else语句的嵌套,构成多分支的选择结构,其流程图如图4-48所示。
图4-48 if-else-if语句的流程图
【实训4.3】利用if-else-if语句实现对模拟汽车转向灯的控制。参考程序:
4.switch语句
if语句一般用于条件判断或分支数目较少的场合,如果if语句嵌套层数过多,就会降低程序的可读性。C语言提供了一种专门用于完成多分支选择的语句switch,其一般格式如下:
该语句执行过程如下:计算“表达式”的值,并逐个与case语句后的“常量表达式”的值相比较,当“表达式”的值与某个“常量表达式”的值相等时,则执行相应“常量表达式”的语句组,然后,执行break语句,退出switch语句,继续执行其后面的语句。如果“表达式”的值与所有case语句后的“常量表达式”的值均不相同,则执行default后面的语句组n+1。
switch语句中的case语句后面必须是一个“常量表达式”。
不能将break语句省略,否则程序将会顺序往下执行下去,出现程序的逻辑错误。
【实训4.4】利用switch语句控制P0端口的8位LED灯,通过检测按键按下的次数,选择点亮不同位置的LED灯(通过1位按键控制8位LED灯流水运行)。
实训4.4电路图如图4-49所示。它是在图4-40的基础上增加了一位按键,连接在P2.0端口上。
图4-49 1位按键控制8位流水灯的电路图
设置按键次数计数变量keynum,当keynum=1时,P1=0xfe,点亮P0.0连接的LED灯;当keynum=2时,P1=0xfd,点亮P0.1连接的LED灯……当keynum=8时,P1=0x7f,点亮P0.7连接的LED灯。否则,P0=0xff,8位LED灯灭。
其流程图如图4-50所示。
图4-50 1位按键控制8位流水灯运行流程图
源程序如下:
(www.chuimin.cn)
switch语句应用的关键是根据控制要求设计case表达式。
1位按键控制8位流水灯运行Proteus仿真图如图4-51所示。
图4-51 1位按键控制8位流水灯运行Proteus仿真图
扩展训练:
在实训4.4原理图的基础上,改变控制效果:检测到按键第1次按下,让8位LED灯自左至右流水移动一次;检测到按键第2次按下,让8位LED灯自右至左流水移动一次;检测到按键第3次按下,让8位LED同时闪烁5次;检测到按键第4次按下,让8位LED灯自中间两位向两边移动;检测到按键5~8次按下的效果,自行设定。
4.4.3 循环语句
循环语句是用于实现需要反复执行多次的操作。利用循环语句控制需要重复多次完成的操作,可以使用程序结构清晰明了,而且编译的效率大大提高。在C语言中构成循环的语句有while语句,do while语句和for语句。
1.while语句
while语句的一般格式如下:
while语句执行时首先判断表达式,当表达式为“真”(非0)时,则执行循环体中的语句组;否则,跳过循环体,执行下一条语句。所以,while语句常常被称为“当型”循环。while语句执行流程图如图4-52所示。
图4-52 while语句执行流程图
注意:while语句中的“{}”是不能省略的。
前面的任务和实训项目中均用到了while语句,这些应用中表达式均为“真”,即while(1)语句构成的循环是无限次循环。
分析下列程序实现了什么功能?
2.do while语句
do while语句的一般格式如下:
do while语句首先执行循环体中的语句组,然后判断while语句表达式是否为“真”,若为“真”,则继续执行循环体中的语句组,直到判断表达式为“假”,跳出循环体,执行do while语句的下一条语句。do while语句执行的流程图如图4-53所示。
图4-53 do while语句执行流程图
它与前面的while语句的区别是首先执行一次循环体中的语句组,然后再执行判断表达式是否为“真”。
3.for语句
for语句可以使程序按照指定的次数重复执行一个语句。其格式如下:
for语句的执行过程如下:首先,给循环变量赋初值;然后,判断循环条件,如果其值为“真”,则执行循环体语句部分;修改循环变量,再与循环条件进行比较,若为“真”,继续执行循环体语句组,否则,执行for循环语句的下一条语句。for语句执行的流程图如图4-54所示。
for语句常用在循环次数确定的情况下。循环变量赋初值只执行一次;循环体语句组部分要执行若干次,具体执行次数由循环条件决定。当for语句中的循环体语句组只有一条语句时,“{}”可以省略。
前面项目和实训中多次用到的delay()函数就是由for语句构成的,例如:
图4-54 for语句执行流程图
延时函数在调用时,若实际参数值为200,则for语句及其后面的空语句“;”循环体执行200次。每条语句的执行都需要一定的时间(µs级),延时函数的延时时间是通过for语句多次重复执行实现的。若希望延时时间更长,在定义的数据类型表示范围内,实际参数取值大些即可。
省略表达式的for语句:
其中,for语句中只有两个分号,三个表达式全部为空语句。没有设置循环变量,不判断循环条件,不修改循环变量,无休止地执行循环体。它的功能相当于while(1)语句。
只有一条循环语句构成的循环称为单重循环。上面的延时函数是由for语句构成的单重循环。
4.循环的嵌套
一个循环体内可包含另一个完整的循环结构,内嵌的循环中还可以嵌套循环,这就是多层循环。以下廷时函数是由两条for语句构成的两层循环,也称为双重循环。
前一条for语句为外循环控制语句,后一条foe语句为内循环控制话句。外循环每执行一次,内循环都要执行125次。若外循环参数ms取值为1000,则内循环执行1000×125次,双重循环可以使延时时间更长。
实际应用中,while、 do while和for语句可以处理相同的问题,它们功能可以互相替代,三种循环语句可以互相嵌套。实训4.1中,使用是在while返句构式循环中包含了for语句构成的循环,构成了双重循环。
凡用while循环能完成的,用for循环都能实现,for语句的功能更强。用while和do while循环时,循环变量初始化的操作应在while和do while语句之前完成。
while循环、dowhile循环和for循环都可以用break语句跳出循环,用continue语句结束本次循环。
5.break语句和continue语句
1)break语句
循环体中使用break语句可以使程序从循环体内跳出,执行循环体的下一条语句。一般格式如下:
break语句不能用于循环语句和switch语句之外的任何其他语句中。例如,下列程序段的执行。
当程序循环到i=51时,执行break语句,跳出for循环,执行j=i操作。
2)continue语句
continue语句的作用为结束本次循环,即跳过循环体中尚未执行的语句,进行下一个是否执行循环的判定,一般格式如下:
例如,下列程序段的执行。
当程序循环到i=51时,执行continue语句,结束本次循环,即不执行下面的j=i语句,而执行i++,即i=52,执行i<100,循环的条件成立,循环继续执行,直到i<100的条件不成立时,for循环才终止。
continue 语句和break语句的区别,continue 语句只结束本次循环,而不是要终止整个循环的执行。break 语句则是结束整个循环过程,不再判断执行循环的条件是否成立。
【实训4.5】P0端口连接8位LED灯,要求其控制状态:8位LED灯先流水运行5次,然后转换为8位灯闪烁10次,两种状态依次循环运行。原理图参照任务4.3的图4-40。
分析:实训要求将8位LED灯流水控制和闪烁控制包含在一个控制程序中,并实现指定控制次数。循环控制可以使用while、do while和for语句,但限定循环次数的控制利用for语句更为方便。
(1)流水循环的5次控制,利用for语句循环变量Loopl控制。
(2)8位流水灯移动控制,利用for语句循环变量shift控制。
(3)8位LED灯闪烁10次控制,利用for语句循环变量Loop2控制。
(4)两种状态的循环进行是无限次的,通过while (1)控制。
源程序如下:
有关单片机原理与应用 基于C语言的文章
“学会学习”包含着一系列与掌握知识有关的能力:阅读能力、书写能力、观察周围世界现象的能力、思考能力、用语言表达自己的思想的能力。当然,一般发展是学习和教育的一个极其重要的因素,但是起着同样重要作用的还有那些基本知识,如果不识记和牢固地保持这些基本知识,那就不可能有一般发展,因为所谓一般发展,就是要不断地去掌握知识,而要做到这一点,则必须学会学习。7至11岁的儿童的大脑正处于迅猛发育的过程中。......
2023-12-03
1)创建基本表语句格式CREATE TABLE<表名>(<列名><数据类型>[列级完整性约束条件][,<列名><数据类型>[列级完整性约束条件]…②DROP子句用于删除指定的列或完整性约束条件。ALTER TABLE Student DROP UNIQUE;3)删除基本表语句格式DROP TABLE<表名>;功能将指定的基本表从外存中删除,包括表结构和表中的所有数据一起删除。......
2023-10-22
接下来将使用ThinkPHP创建一个简单的MVC网站应用。通过正确修改上述配置文件信息,现在ThinkPHP就可以操作MySQL数据库了。在ThinkPHP中无论是模型的文件名,还是模型的类名都必须遵循内建的文件规则。图4-24 ThinkPHP MVC运行效果 说明:在ThinkPHP 3.0以前的版本中,视图还有主题的概念,所谓的主题是为了使网站更好地应用多模板、多风格。......
2023-11-04
我之所以写这本书,是因为我曾经是全球最重度拖延症研究室里的一只小白鼠,那时拖延症险些毁掉我的生活,毁掉我的一切。作为群体,直至灭绝那一天,人类都将永远饱受拖延症之苦。但作为个体,你却有可能治愈拖延症。另外通过阅读这本书,你可以掌握一种融合了相关心理学、艺术、文学、科学、哲学等领域知识的混合理论,一种融合了科学理性和生命美学的混合理论,它将帮助你彻底治愈拖延症,并帮助你获得过理想生活的能力。......
2024-02-01
PowerPoint 2016内置了十余种版式,用户可根据需要选择,也可选择其中的空白版式,根据个人喜好对幻灯片上的各对象进行布局。PowerPoint 2016为用户提供了许多内置的模板。同时,用户也可在Office.com或其他网站上获取已有的模板,还可以自己制作模板,其扩展名为.potx。......
2023-11-01
switch支持依次执行两个紧邻的分支语句。◇ default语句类似if语句中的else分支,如果expression与所有常量表达式不相等,执行default从句。图6.2.7switch语句执行流程从流程图可以看出break语句增加了switch分支语句的复杂性,导致相邻的case语句常量表达式判断失效,一般建议在case语句内都使用break语句。图6.2.8switch语句函数showGrade判断分数所属成绩等级:◇ 分别输入分数100到70,其中100、90、70分段正常输出。......
2023-11-08
for 语句的运行过程如图3.10 所示。下面给出应用最广泛、也最容易理解的for 语句的一般形式:图3.10for 循环执行流程图用for 循环结构来计算1+2+3+…“表达式1”通常用于循环变量赋初值,如果省略,表示不对循环变量赋初值或者已经把赋初值语句放在了for 语句前面。......
2023-10-21
幻灯片是演示文稿的基本组成单位,一个演示文稿中可以包含多张幻灯片。单击“文件”→“新建”命令,打开图5-8所示的“新建”面板,实现新建演示文稿。OneDrive是PowerPoint 2016的一个云存储服务,使用OneDrive可以实现演示文稿的存储和共享。......
2023-11-01
相关推荐