if文による条件分岐
CoddyのArduinoジャーニー「はじめての回路」セクションの一部。レッスン 18/22。
ifは、条件が真のときだけいくつかの行を実行します。
if (waitTime > 200) {
waitTime = waitTime - 200;
}括弧内の部分が条件です。waitTime > 200は「waitTimeが200より大きい」という意味で、真か偽のどちらかです。真の場合、ボードは波括弧内の行を実行します。偽の場合はそれらをスキップし、閉じ波括弧の後から処理を続けます。
<は「より小さい」という意味です。他の比較演算子もすぐに学びます。
条件の後にセミコロンはありません。if (waitTime > 200);とすると、その場でifが終わり、中身は何もなくなります。そのため、波括弧内の行は毎回実行されます。
チャレンジ
簡単スターターは、速くなったあと止まってしまう点滅です。修正しましょう。
- 200より大きい間だけ
waitTimeを小さくする
点滅は速くなったあと、200 msで点滅し続けるはずです。実行を押してから、チェックを押してください。
自分で試してみよう
int waitTime = 1000;
void setup() {
pinMode(13, OUTPUT);
}
void loop() {
digitalWrite(13, HIGH);
delay(waitTime);
digitalWrite(13, LOW);
delay(waitTime);
// waitTime が 200 より大きい間だけこれを実行する
waitTime = waitTime - 200;
}
このレッスンには短いクイズがあります。レッスンを始めて解答し、進捗を記録しましょう。
はじめての回路のすべてのレッスン
自分で練習してみよう: Arduinoプレイグラウンド