【C++入門】式と演算子を完全解説|計算の仕組みとよく使う演算子一覧
この記事でわかること
この記事では、C++における 式 と 演算子 について解説します
- プログラムで使われる「式」とは何か
- C++で使われる演算子の種類と役割
ここを理解しておくと、計算処理や条件分岐が一気に分かりやすくなります
式とは何か
プログラミングにおける「式」とは値や変数、演算子を組み合わせて計算できるもの を指します。算数で1 + 2 と書くと 3 になるのと同じように、C++でも式を書けば、その結果が求められます
#include <iostream>
using namespace std;
int main() {
int num = 1 + 2;
cout << num << endl;
return 0;
}3この例では
1 + 2が「式」- 計算結果の
3がnumに代入
という流れになっています
演算子について
式の中で 計算や比較を行うための記号 を演算子と呼びます
C++にはさまざまな演算子がありますがまずは基本となるものから押さえていきましょう
算術演算子
数値の計算に使われる演算子です
| 演算子 | 説明 | 例 | 結果 |
|---|---|---|---|
| + | 足し算 | 3 + 2 | 5 |
| – | 引き算 | 3 – 2 | 1 |
| * | 掛け算 | 3 * 2 | 6 |
| / | 割り算 | 5 / 2 | 2 |
| % | 余り | 5 % 2 | 1 |
#include <iostream>
using namespace std;
int main() {
int a = 5;
int b = 2;
cout << "a + b = " << a + b << endl;
cout << "a - b = " << a - b << endl;
cout << "a * b = " << a * b << endl;
cout << "a / b = " << a / b << endl;
cout << "a % b = " << a % b << endl;
return 0;
}a + b = 7
a - b = 3
a * b = 10
a / b = 2
a % b = 1int 型同士の計算では割り算の小数点以下は切り捨てられます
小数を扱いたい場合は、float や double を使いましょう
比較演算子
数値同士を比べるための演算子です。結果は true または false になります
| 演算子 | 説明 | 例 | 結果 |
|---|---|---|---|
| == | 等しい | 3 == 3 | true |
| != | 等しくない | 3 != 2 | true |
| < | 小さい | 2 < 5 | true |
| > | 大きい | 5 > 2 | true |
| <= | 以下 | 3 <= 3 | true |
| >= | 以上 | 5 >= 3 | true |
#include <iostream>
using namespace std;
int main() {
int a = 5;
int b = 2;
cout << boolalpha;
cout << "a == b : " << (a == b) << endl;
cout << "a != b : " << (a != b) << endl;
cout << "a > b : " << (a > b) << endl;
cout << "a < b : " << (a < b) << endl;
cout << "a >= b : " << (a >= b) << endl;
cout << "a <= b : " << (a <= b) << endl;
}boolalpha を使うことで、結果を 1 や 0 ではなく true / false として表示できます
代入演算子
値を変数に入れるための演算子です
非常によく使われます
ここでは a = 5 とした場合の結果を示しています
| 演算子 | 説明 | 例 | 結果 |
|---|---|---|---|
| = | 代入 | a = 3 | 3 |
| += | 足して代入 | a += 3 | 8 |
| -= | 引いて代入 | a -= 2 | 3 |
| *= | 掛けて代入 | a *= 2 | 10 |
| /= | 割って代入 | a /= 2 | 2 |
| %= | 余りを代入 | a %= 2 | 1 |
短く書けるだけでなく、可読性も上がるので覚えておくと便利です
論理演算子
主に if 文などの条件分岐で使われます
| 演算子 | 説明 | 例 |
|---|---|---|
| && | AND | a > 0 && b > 0 |
| || | OR | a > 0 || b > 0 |
| ! | NOT | !(a > 0) |
#include <iostream>
using namespace std;
int main() {
int a = 0;
int b = 1;
if (a && b) {
cout << "ANDの結果:true" << endl;
} else {
cout << "ANDの結果:false" << endl;
}
a = 1;
if (a || b) {
cout << "ORの結果:true" << endl;
} else {
cout << "ORの結果:false" << endl;
}
}ANDの結果:false
ORの結果:true条件が複雑になるほど論理演算子の理解が重要になります
インクリメント・デクリメント演算子
変数の値を 1だけ増やす、または減らす 演算子です
| 演算子 | 説明 | 例 |
|---|---|---|
| ++ | 1増やす | a++ |
| — | 1減らす | a– |
a++ は a = a + 1 と同じ意味です
※++a と a++ では、式として評価されるタイミングが異なるため注意が必要です
ビット演算子
ビット単位で演算を行う演算子です
日常的なプログラムではあまり使われません
ここではa = 6(110)b = 3(011)
とします
| 演算子 | 説明 | 結果 |
|---|---|---|
| & | AND | 2(010) |
| | | OR | 7(111) |
| ^ | XOR | 5(101) |
| ~ | NOT | 1(001) |
| << | 左シフト | 12(1100) |
| >> | 右シフト | 3(011) |
ビット演算の考え方
- AND
両方が1のときだけ1 - OR
どちらかが1なら1
繰り上がりのない足し算のイメージ - XOR
異なるときだけ1 - NOT
0と1を反転させる
効率重視の処理や
ハードウェア制御などで使われることがあります
まとめ
- 式は「計算できる形」を指す
- 演算子は計算や比較を行うための記号
- 算術、比較、論理演算子は特に重要
演算子を理解すると
条件分岐やループ処理が一気に読みやすくなりますの方が多いですが、効率の良い処理やハード制御ではよく出てくるそうです