目次

3-7 条件式を覚えよう

プログラミングらしいプログラミング(?)、制御文の話に入ります。
制御文とは「特定の条件を付け、それを判断材料に処理を繰り返したり、分岐したりする命令文」です。
このうち「特定の条件を付けて判断材料にする」部分を、「条件式」と呼びます。
制御文の本体に突撃する前に、まずは制御文を構成する「条件式」から攻略していきましょう。
  

条件式に使われる演算子

Arduino言語では、条件式の多くは「演算子」と呼ばれる記号を使って書き表します。
条件式に使える演算子について、一覧で見てみましょう。
  

比較演算子

比較演算子では、2つの値(数値や変数)を比較して成立しているかどうかを確認します。
成立している場合はtrue(=1)を、不成立の場合はfalse(=0)を返します。

比較演算子 説明
== 2つの値が同じである場合に成立したとみなす x == y 
(xとyが等しいならtrueを返す)
!= 2つの値が異なる場合に成立したとみなす x != y
(xとyが等しくなければtrue)
< 前の値が後ろの値より小さい場合に
成立したとみなす(=「未満」)
x < y
(xがy未満ならtrueを返す)
> 前の値が後ろの値より大きい場合に
成立したとみなす(=「超える」)
x > y
(xがyを超えるならtrueを返す)
< = 前の値が後ろの値より小さい、もしくは同じ
である場合に成立したとみなす(=「以下」)
x < = y
(xがy以下ならtrueを返す)
> = 前の値が後ろの値より大きい、もしくは同じ
である場合に成立したとみなす(=「以上」)
x > = y
(xがy以上ならtrueを返す)

  

論理演算子

論理演算子は、複数の条件式を合わせて判断する場合に使います。
成立している場合はtrue(=1)を、不成立の場合はfalse(=0)を返します。

論理演算子 説明
&& 前の条件式と後ろの条件式の両方が成立して
いれば、成立とみなす(=「論理積」)
x && y
(xとy両方がtrueならtrue)
|| 前の条件式か後ろの条件式のどちらかが成立
していれば、成立とみなす(=「論理和」)
x || y
(xかyのどちらかがtrueならtrueを返す)
! 条件式が不成立なら、成立とみなす(=「否定」) !x
(xがfalseならtrueを、trueならfalseを返す)

  

条件式の実際の例を見てみよう

レベル1:比較演算子で条件式を作ろう

(value == 4)

意味:「変数valueの中身が4であればtrue、4じゃなければfalse」
解説:数値の変数を使った簡単な条件式です
   (value = 4) と書くと、valueの中身を書き換える「代入」になってしまうので注意!!

(str == "siitake")

意味:「strの中身が文字列「siitake」であればtrue、それ以外であればfalse」
解説:条件式に文字列の変数やStringクラスを使うこともできます

(value != 100)

意味:「変数valueの中身が100でなければtrue、100ならfalse」

(value >= 1999)

意味:「変数valueの中身が1999以上であればtrue、1999未満ならfalse」

  

レベル2:論理演算子で複数の条件式を判断材料にしよう

((value > 10) && (value < 100))

意味:「変数valueの中身が10を超え100未満(=11~99)ならtrue、それ以外であればfalse」

((value >= 10) && (value <= 100))

意味:「変数valueの中身が10以上100以下(=10~100)であればtrue、それ以外であればfalse」
解説:「<(未満)」、「>(超える)」、「⇐(以下)」、「>=(以上)」の範囲の区別に注意しましょう

((str1 == "siitake") || (str2 == "maitake"))

意味:「str1の中身が「siitake」もしくはstr2の中身が「maitake」であればtrue、それ以外であればfalse」
解説:ちなみに1つでもtureがあればtrueなので、両方trueの場合もtrueです

  

レベル3:あんな条件式もこんな条件式もあり

((value == 1) || (value == 10) || (value == 100))

意味:「変数valueの中身が1か10か100であればtrue、それ以外であればfalse」
解説:条件式を3つ以上組み合わせることだってできます

((value * 20 + 3) >= 500)

意味:「変数valueの中身に20を掛けて3を足した値が500以上ならtrue、それ以外ならfalse」
解説:条件式の内部で計算をかけることだってできます。計算部分は( )で括りましょう

(str.length() < 10)

意味:「strの文字数を調べて10文字未満ならtrue、それ以外ならfalse」
解説:条件式の内部で計算ができるなら、関数の処理だってできちゃいます!