大多数循环程序被编写为在某个点终止。但是,其他循环,如在我们所有程序中看到的loop()函数,都是编写为永远运行的。事实上,Arduino中的程序要停止,需要断开主板电源或按下主板上的重置按钮。
在接下来的部分中,我们将忘记loop()函数及其无限执行序列。相反,我们想看看你用自己的代码控制的循环。考虑到这一点,让我们检查构成良好循环程序的三个条件。
循环只是一个或多个程序语句的执行,当到达序列的最后一个语句时,程序返回到第一个语句并重复执行序列。良好的循环总是在循环语句开始执行之前将一个或多个变量初始化为已知的程序状态。通常,一个变量的值用于控制循环语句进行的迭代次数。初始化条件通常涉及将控制变量设置为0。这将使循环控制变量处于已知状态。也就是说,它的右值是一个已知的量。
一些程序员“知道”特定的编译器将变量的右值初始化为零(如果是引用类型变量,则为null)。但是,ANSI C标准中没有要求编译器将所有变量初始化为0或null。事实上,即使null也可以由编译器供应商重新定义对他们的特定处理器有意义的。因此,你可以做出的最佳假设是关于新定义变量的右值,是指它包含任何随机位模式(即垃圾),恰好存在于特定变量的左值。假设变量自动初始化为某些已知状态,并不是一个好的编程习惯。
(2)回路控制。(www.xing528.com)
良好的循环的第二个条件是执行测试,以确定是否需要通过循环语句进行另一次迭代。通常,此测试涉及一个关系运算符和循环控制变量。关系测试的结果确定是否再次通过循环控制的语句。
(3)变更控制回路变量的状态。
每次通过循环后,控制循环的表达式必须更改状态。如果控制变量在处理循环语句期间未更改状态,则循环将永远执行。也就是说,条件2中的测试结果永远不会改变,这意味着循环将永远运行,此循环称为无限循环。回想一下,loop()函数的设计目的是就这样永远“跑”下去。但是,在loop()中编写的代码可能不是这种作用情况。
考虑到这三个条件,让我们检查for循环控制结构。
免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。