我有一个伺服控制器,它将一个物体越来越靠近传感器,试图触发它。我怎样才能让这个程序更优雅?
我想要的距离为开始在15.5。但是,在每次迭代中,我都希望它减小距离.1,直到传感器触发。为了方便起见,我想退出while循环,将变量$ currentHeight设置为该触发高度,所以我将减量线放在循环的标点处。
但是,我必须在while循环之前硬编码一个15.6的起始点,以便它在循环的第一行中递减到15.5。
这看起来并不高雅。有关如何改变这种情况的任何建议?顺便说一句,这是Tcl为你所有的老学校和晦涩难懂的程序员。 ;)
代码:
set currrentDistance 15.6
set sensorStatus 4
while {$sensorStatus == 1)} {
set currentDistance [expr $currentDistance - .1]
moveServo $currentHeight
set sensorStatus [watchSensor 2]
}
这将永远不会进入循环,因为sensorStatus!= 1开始 – 2011-02-23 00:34:12
@glenn:除非它是链接到某些内存映射硬件的变量,或者它具有设置的跟踪。那会很丑。 – 2011-02-23 08:49:29
我不得不改变一些识别信息,它看起来像我结束了不正确的编辑。但基本前提适用。 :)假设它可以进入循环。 – eastydude5 2011-02-23 22:18:43