†こちらのプログラムは少し嗜好をこらしてみました。(ただ単にプログラムを書いた人が、昔やっていたC言語の名残でついこうなってしまったというのもありますが、これはこれでおもしろいからいいのかな、と思っています。プログラム設計者は全く後悔していませんよ、えぇそうですとも!!)まず、define文で閾値を設定した後、各センサータイプの定義をそれぞれ行い、while(1)で無限ループを構築しています。上のプログラム内でもコメントで書いてありますが、ptという関数にそれぞれの状態の時に各数値を代入します。この行動自体はごく普通なのですが。その後、switch文を用いて各モードに移行するようになっています。switch文というのは、switchの意味を考えて頂ければ分かるとおり、ある場所からスイッチが入ると入ったスイッチの番号のところに書いてある処理を行います。上のプログラムの場合、switch(pt)となっており、この『pt』がスイッチの働きをしています。プログラム内ではif文を用いて『pt』にある条件のときに各数値を代入しスイッチとしての役割を行っています。光センサーがどちらも白と判断していた場合、if文では『pt』に『1』を代入しています。switch文を見ると、『pt=1』の場合どちらのモーターも正転しており、光センサーがどちらも白判定をしている場合、『直進しろ』という命令を出しているわけです。今回は本当に昔の名残でついswitch文をつい使ってしまいましたが、見て頂ければ分かるとおりプログラムか無駄に長くなっています。今回のライントレースロボットに関して言えば、switch文を使わずともif文で十分に同じ処理が行えます。