这个程序的问题是你真的只能从超声波传感器读取一次。以下是运行程序时会发生的情况:
Ultrasonic
...
要解决这个问题,您需要做的就是将超声波传感器的读数移动到 while 循环,以便NXT不断检查传感器的值。以下是修改后的版本:
while
task main() { int Ultrasonic; while (true) { Ultrasonic = SensorValue[S1]; if (Ultrasonic > 10) { // ... Do stuff here... } if (Ultrasonic <= 10) { // ... Do more stuff here... } } }
实际上,通过使用“if ... else ...”语句组合检查超声波传感器的值,可以使这个代码更“干净”。这会检查一个值,然后根据该值是否为真做出决定 - 否则。只需更换线 if (Ultrasonic <= 10) 同 else 。
if (Ultrasonic <= 10)
else