演算子

計算や比較、論理演算の各種演算子を理解する

概要

演算子は、 値に対して何かの操作を行う記号やキーワードです。

例えば、+(足す)や <(より小さい)などが演算子です。

算術演算子

数値同士の計算に使う演算子です。

演算子 名称 結果
+ 加算(足し算) 10 + 3 13
- 減算(引き算) 10 - 3 7
* 乗算(掛け算) 10 * 3 30
/ 除算(割り算) 10 / 3 3 (整数同士)
% 剰余(あまり) 10 % 3 1

#include <iostream>

int main() {
    int a = 10, b = 3;
    
    std::cout << "a + b = " << (a + b) << std::endl;  // 13
    std::cout << "a - b = " << (a - b) << std::endl;  // 7
    std::cout << "a * b = " << (a * b) << std::endl;  // 30
    std::cout << "a / b = " << (a / b) << std::endl;  // 3 (小数部分削除)
    std::cout << "a % b = " << (a % b) << std::endl;  // 1 (あまり)
    
    return 0;
}

実行結果:
a + b = 13
a - b = 7
a * b = 30
a / b = 3
a % b = 1

注意: 整数の割り算

10 / 33(小数部分は削除)です。 小数で計算したければ double を使います:

double x = 10.0 / 3.0;
std::cout << x << std::endl;  // 3.33333

増減演算子

変数の値を1増やす、1減らすための演算子です。

演算子 説明
++ 1増やす x++ or ++x
-- 1減らす x-- or --x
int x = 5;

x++;           // x は 6 になる
std::cout << x << std::endl;  // 6

x--;           // x は 5 になる
std::cout << x << std::endl;  // 5

比較演算子

2つの値を比較して、true(真)または false(偽)を返します。

演算子 意味 結果
== 等しい 10 == 10 true
!= 等しくない 10 != 3 true
< より小さい 10 < 20 true
> より大きい 10 > 20 false
<= 以下 10 <= 10 true
>= 以上 10 >= 5 true
int a = 10, b = 20;

std::cout << (a == b) << std::endl;  // 0 (false)
std::cout << (a != b) << std::endl;  // 1 (true)
std::cout << (a < b) << std::endl;   // 1 (true)
std::cout << (a > b) << std::endl;   // 0 (false)

論理演算子

複数の条件を組み合わせるための演算子です。

演算子 意味 説明
&& AND(かつ) 両方 true ならば true true && true = true
|| OR(または) どちらか一つ true ならば true true || false = true
! NOT(ではない) 反対にする !true = false
int age = 25;
bool hasLicense = true;

// 年齢が18以上 AND 免許がある
std::cout << ((age >= 18) && hasLicense) << std::endl;  // 1 (true)

// 年齢が18未満 OR 免許がない
std::cout << ((age < 18) || !hasLicense) << std::endl;  // 0 (false)

代入演算子

値を変数に代入するための演算子です。

演算子 の意味 と同等
= 代入 x = 5 -
+= 加算して代入 x += 3 x = x + 3
-= 減算して代入 x -= 2 x = x - 2
*= 乗算して代入 x *= 2 x = x * 2
int x = 10;

x += 5;          // x は 15 に
std::cout << x << std::endl;  // 15

x -= 3;          // x は 12 に
std::cout << x << std::endl;  // 12

x *= 2;          // x は 24 に
std::cout << x << std::endl;  // 24

演算子の優先度

複数の演算子がある場合、優先度に従って計算されます。

基本的な優先度(高い順)

  1. () — 括弧
  2. *, /, % — 乗算・除算・剰余
  3. +, - — 加算・減算
  4. <, <=, >, >= — 比較
  5. ==, != — 等値比較
  6. && — AND
  7. || — OR
  8. = — 代入

例:

int result = 10 + 3 * 2;       // 3 * 2 = 6, 10 + 6 = 16
int result2 = (10 + 3) * 2;    // 10 + 3 = 13, 13 * 2 = 26

迷ったら括弧を使うことで、優先度を明確にできます。

ポイント

  • 演算子は値に対する操作を行うもの
  • 算術演算子: +, -, *, /, %(計算)
  • 比較演算子: ==, !=, <, >(true/false を返す)
  • 論理演算子: &&, ||, !(複数条件の結合)
  • 演算子の優先度に注意。不安なら括弧を使う

よくある誤り

誤り1: = と == を混同

if (x = 10) { }   // NG: これは比較ではなく代入!
if (x == 10) { }  // OK: 正しい比較

誤り2: 整数除算の小数部分

int result = 10 / 3;        // 3 (小数部分削除)
double result2 = 10.0 / 3;  // 3.33333...

誤り3: 論理演算子の優先度

// これは何か?
if (x > 5 && y < 10 || z == 0) { }

// 迷ったら括弧を使おう
if ((x > 5 && y < 10) || (z == 0)) { }

やってみよう

練習1: 2つの数値を入力させ、加減乗除とあまりを計算・表示するプログラム。

練習2: ユーザーが18歳以上かどうかを判定するプログラム。

チャレンジ: 3つの数値を入力させ、その合計が100以上かつ最大値が50未満なら「条件を満たしている」と表示。

ヒント

&& を使って2つの条件を組み合わせます。

まとめ

  • 演算子は、値を操作する記号
  • 算術・比較・論理・代入など様々な種類がある
  • 演算子の優先度を理解し、括弧で明確化する