Skip to content

4. 条件分岐

4.2 演算子

4.2.1 比較演算子

4.1.1で説明したような、2つの値を比較する演算子のことを、比較演算子と呼ぶ。比較演算子を列挙した表を以下に再掲しておく。

演算子数学の記号
>=
>
<
<=
==
!=

4.2.2 論理演算子

条件が1つの変数のみに依存する時はifelseでわかりやすく書けた。では、条件が2つ以上ある場合はどうすればよいだろうか。if文の中にif文を書くことで、2つの条件の組み合わせを記述することができるが、煩雑にである。

数学では「または」「かつ」「でない」()をよく使ったと思うが、プログラミングでもそれに当たるものが存在する。これらを論理演算子と呼ぶ。論理演算子を用いることで、比較的簡単に、複数の条件の組み合わせを書くことができる。

演算子意味意味・数学記号
&&ANDかつ
||ORまたは
!NOTでない
cpp
int x = 8;
int y = 5;

if (x < 10 && y < 10) {
  cout << "x も y も 10より小さい" << endl;
}
if (!(y >= 10)) {
  cout << "y は 10 より大きくない" << endl;
}

4.2.3 演算子の優先順位

数学と同じように、演算子には優先順位がついている。優先順位自体は覚えなくても良いが、たまに優先順位が自分の想定と違うときがある。そのようなときは()で式をくくることで、計算順序を変えられる。

特に、<<は比較演算子より優先順位が高い。 cout << a <= b << endl;と書くとコンパイルエラーとなってしまうので2行目のように書かなければならない。

cpp
cout << ((a + b) * c) << endl;
cout << (a <= b) << endl;

TIP

「じゃあ<<演算子の優先度を一番低くすればいいじゃん」と思ったかもしれない。 しかし、実際には複雑な事情があるのだ……。

第4章のまとめ

  • if文、else文で条件分岐ができます。
  • if(x==0)はどのような条件を表していますか? ==は比較、=は代入です。
  • < > <= >=で大小の比較ができます。
  • && || !でAND, OR, NOTを扱えます。