我有一個伺服控制器,它將一個物體越來越靠近傳感器,試圖觸發它。我怎樣才能讓這個程序更優雅?
我想要的距離爲開始在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