Arduino ネストされた if ステートメント
このチュートリアルでは、Arduino でネストされた if
ステートメントを使用して別のステートメント内に if
ステートメントを追加する方法について説明します。
Arduino ネストされた if
ステートメント
Arduino の if
ステートメントは、特定の条件が満たされた場合にタスクを実行するなどの条件を定義します。 1つを確認したい場合、それが真である場合、別の条件を確認したい場合、
最初の if
ステートメントのスコープ内で 2 番目の if
ステートメントを定義できます。
構文:
if (condition1) {
if (condition2) {
// do something
} else {
// do something
}
}
上記のコードでは、最初の条件が true の場合、プログラムは 2 番目の条件をチェックし、それも true の場合、2 番目の条件内のコードが実行されます。
上記のコードの 2 番目の if
ステートメント内に if
ステートメントを追加することもできます。
たとえば、ネストされた if
ステートメントを作成し、指定された番号を確認して、条件に従ってテキストを出力してみましょう。
コード:
long t1 = 11;
long t2 = 600;
long t3 = 600;
void setup() { Serial.begin(9600); }
void loop() {
if (t1 > 10) {
if (t2 < 500) {
Serial.println("Hello");
} else {
Serial.println("World");
}
} else if (t3 > 500) {
Serial.println("Something else");
}
delay(500);
}
出力:
World
出力は、テキスト World
がシリアル モニターに出力されていることを示しています。これは、最初の条件が true で、2 番目の条件が false であることを意味します。 delay()
関数を使用して、コードに遅延を追加しました。
タスクを実行する前に複数の条件を確認したい場合は、&&
と ||
を使用することもできます。 オペレーター。 AND
演算子としても知られる &&
記号は、タスクを実行するときに指定されたすべての条件が真である場合にのみ使用されます。
OR
演算子とも呼ばれる||
記号は、与えられたすべての条件から 1つの条件が真であってもタスクを実行したい場合に使用されます。
たとえば、数値の範囲をチェックして特定のテキストを出力する 2つの条件を定義してみましょう。
以下のコードを参照してください。
long t1 = 15;
void setup() { Serial.begin(9600); }
void loop() {
if (t1 > 10 && t1 < 15) {
Serial.println("Hello");
}
if (t1 > 10 || t1 < 15) {
Serial.println("World");
}
delay(500);
}
出力:
World
上記のコードでは、2つの if
ステートメントを定義しており、それぞれに 2つの条件がありますが、演算子は異なります。 1つは &&
演算子を持ち、もう 1つは ||
演算子を持ちます。 オペレーター。
上記の出力に示されているように、2 番目の if
ステートメントが実行されます。これは、2つのステートメントのいずれかが true であり、演算子が OR
演算子であるためです。 2つ以上の条件を定義して、単一の if
ステートメント内で両方の演算子を使用することもできます。
switch
ステートメントを適用して Arduino の状態を確認することもできます。
構文:
switch (variable) {
case A:
// do something when variable equals A
break;
case B:
// do something when variable equals B
break;
default:
// do the default and its optional
break;
}
variable
には、上記の構文で条件を定義するために使用する値が含まれています。 最初の条件が満たされた場合、以下のコードが実行され、プログラムは break
ステートメントのために他のケースをチェックしません。
switch()
ステートメントは、等しい条件をチェックするためにのみ使用できることに注意してください。 より小さい条件とより大きい条件を使用する場合は、if-else
ステートメントを使用する必要があります。
たとえば、数値を使用して 3つのケースを定義し、それぞれのケースでテキストを出力してみましょう。 指定された条件のいずれも真でない場合、デフォルトのステートメントが実行されます。
コード:
long t1 = 16;
void setup() { Serial.begin(9600); }
void loop() {
switch (t1) {
case 15:
Serial.println("t1 = 15");
break;
case 10:
Serial.println("t1 < 15");
break;
case 20:
Serial.println("t1 > 15");
break;
default:
Serial.println("One of the cases is true");
break;
}
delay(500);
}
出力:
None of the cases is true
上記の出力からわかるように、上記のコードのケースはどれも当てはまりません。 そのため、default ステートメントが実行されます。