最近有一些同好提出NXC程式的撰寫問題,探奇將重點記錄下來,作為自己的備忘錄。 首先第一部份是『if』命令: 根據NXC_Guide.pdf的範例,if敘述的使用方式如下: if (x==1) y = 2; if (x==1) y = 3; else y = 4; if (x==1) { y = 1; z = 2; } (下面是探奇的解釋,有錯請大家指教! ) 如果只有一行程式要執行 if (條件比較) 條件成立的執行程式; 或是這 樣: 如果有許多東西要執行 if (條件比較) { 條件成立的執行程式1; 條件成立的執行程式2; ....... } 如果你將敘述打成 if (SensorUS(S4) < range); { Off(OUT_AC); OnRev(OUT_C, 100); Wait(800); Off(OUT_C); } 表示條件成立時,只執行if條件後面的一行程式,那就是『;』,相當於不論條件成立與否,都沒有執行任何特殊的命令, 接著就繼續執行下面{}裡面的指令。 請刪除if後面的『;』,應該可以正常動作: if (SensorUS(S4) < range) { Off(OUT_AC); OnRev(OUT_C, 100); Wait(800); Off(OUT_C); } 簡而言之,探奇認為遵守NXC的語法,才能正確執行程式。 if 指令盡量都用{}將所要執行的命令『包』起來,除了避免錯誤,也比較容易閱讀! ...