通过第2章的Blink例程,我们理解了LaunchPad运行的规律:LaunchPad上电以后,执行一次setup()函数完成初始化后,就开始周而复始地执行loop()函数,红色LED就开始不停地闪烁。试想假设一个人每天一成不变地机械地做同一件事情,没有发生任何变化,该是多么无聊啊!本节将重点介绍两个重要的控制MCU运行顺序的编程要素:分支结构和循环结构,使得LaunchPad的“生活”更丰富多彩。
1)分支结构
分支结构又称选择结构。在编程中,经常需要根据当前数据做出判断,以决定下一步的操作。例如,LaunchPad与一个温度传感器相连,可以读取室外温度。如果室外温度超过30℃,则打开空调制冷;如果室外温度低于5℃,则打开空调制热;如果室外温度介于5~30℃之间,则关闭空调。这时就需要用到分支结构。
选择语句有以下两种形式。
(1)if语句。if语句是最常用的选择结构,有两种结构形式。
①简单分支结构。当表达式为真时,运行语句;否则跳过if结构接着往下执行。
②双分支结构。当表达式为真时,就运行语句1,否则运行语句2。
这里解释一下“表达式为真”的意思:C/C++语言认为当表达式的值不为0时,为真;当表达式的值为0时,为假。
假设temp存放的是MCU读取的温度传感器的值,则如下代码可以实现上例:
进一步也可以写出更好一点的代码:
其中cooler()、heater()和airCondtion()是设计者自己编写的函数。
(2)switch语句。当处理比较复杂的问题时,可能会出现有很多选择分支的情况,如果还使用if...else的结构编写程序,则使程序显得冗长,且可读性差。此时可以考虑使用switch语句,其一般形式为:
需要注意的是,switch后的表达式的结果只能是整型或字符型,如果使用其他类型,则必须使用if语句。
switch语句结构的流程图如图3-1所示。(www.xing528.com)
图3-1 switch语句结构
当表达式的值不等任何一个常量表示式时,则执行语句n。
2)循环结构
循环结构,基于特定的条件,重复执行一条或一系列操作。循环语句常如下两种形式。
(1)while循环:
(2)for循环:
例如,修改Blink示例程序让红色LED开和关重复执行10次。为了突出修改内容,删除了一些原有的注释,增加了一些新的注释。
修改方案1:
修改方案2:
for循环实现的代码也可以被while循环所代替:
免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。