PBASICのDOループは、エレクトロニクスプロジェクトのBASIC Stampのプログラミングをよりコンパクトにすることができます。 DOループは、本質的にラベルとGOTOステートメントと同じ機能を実行する特別なPBASICステートメントです。たとえば、次の点を考慮してください。
Main:HIGH 0 PAUSE 500 LOW 0 PAUSE 500 GOTO Main
LEDをオンまたはオフにする行を置くことによって、MainラベルまたはGOTOステートメントなしで同じ機能を実行できますDOとLOOP文の間には、次のようになります。
<! - 1 - >DO HIGH 0 PAUSE 500 LOW 0 PAUSE 500 LOOP
DO文とLOOP文の間の行は、無期限に繰り返し実行されます。
'LEDフラッシャープログラム' Doug Lowe '2011年7月10日「このプログラムは、ピン0,2,4,6,8,10に順番に接続されたLEDを点滅させます」このプログラムのバージョンはDOループを使用します。 '$ PBASIC 2. 5' '{$ STAMP BS2}スピードVAR BYTE LED VAR BYTEスピード= 50 Led = 0 DOハイLed PAUSEスピードLOW Led PAUSEスピードIF Led <10 tHEN Led = Led + 2 ELSE Led = 0 ENDIF LOOP
条件付きテストをループ文に追加して、ループを条件付きにすることができます。例:
<! LEDが点灯している間はLEDが点滅します。 - 2 - > 10番ピンのLEDが点滅した後、最後の2行目はLed変数を12に設定します。次に、LOOP UNTILステートメントはLedが10より大きいと判断してループを停止します。単語UNTILの代わりに、単語WHILEを使用して、DOループ内の条件をマークすることができます。 UNTILとWHILEの間には大きな違いがあります。違いは言葉が示唆しているとおりです。 UNTILという単語を使用すると、条件が真になるまでループが実行されます。 WHILEという単語を使用すると、条件が偽となるまでループが実行されます。
<! - 3 - >
DO文またはLOOP文に条件テストを含めることもできます。 DOステートメントに条件テストを配置すると、ループの各実行前に条件がテストされます。
ループステートメントに配置すると、各ループの完了後に条件がテストされます。WHILEテストはDO文に、UNTILテストはLOOP文に配置するのが一般的です。 Led = 0 Led中に<11 hIGH LED PAUSE 500 LOW PAUSE 500 Led = Led + 2 LOOP ここで、Ledの値はループが実行される前にテストされます。ループはLedが11未満である限り実行されます。 DOループは
ネストされて
ことができます。つまり、1つのDOループに別のDOループを含めることができます。DOループがネストされている場合、内部ループに条件テストが必要です。さもなければ、それは永遠にループし、外側のループは決して完了することはありません。
このプログラムでは、最も内側のDOループが6個のLEDを1回点滅させます。最後のLEDが点滅した後、UNTIL条件を使用してループを停止します。一番外側のDOループは無限に続き、点滅シーケンスは無期限に続きます。
'LEDフラッシャープログラム' Doug Lowe '2011年7月10日「このプログラムは、ピン0,2,4,6,8,10に順番に接続されたLEDを点滅させます」このバージョンのプログラムでは、ネストされたDOループが使用されます。速度はLed> 10 LOOP に設定されています。LOOP> LOOP