4.2 演算子
4.2.1 比較演算子
4.1.1で説明したような、2つの値を比較する演算子のことを、比較演算子と呼ぶ。比較演算子を列挙した表を以下に再掲しておく。
| 演算子 | 数学の記号 |
|---|---|
>= | |
> | |
< | |
<= | |
== | |
!= |
4.2.2 論理演算子
条件が1つの変数のみに依存する時はifとelseでわかりやすく書けた。では、条件が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を扱えます。