カテゴリ: C++ 更新日: 2026/02/20

C++の論理演算子を完全解説!初心者でもわかる && || ! の使い方

論理演算子 (&&, ||, !)
論理演算子 (&&, ||, !)

先生と生徒の会話形式で理解しよう

生徒

「C++の条件式で、アンパサンドが二つ並んでいたり、縦線が二本あったりするのを見ました。これは何ですか?」

先生

「それは論理演算子といって、複数の条件をまとめて判断するときに使います」

生徒

「条件をまとめるというのは、どういうことですか?」

先生

「例えば、年齢と身長の両方を満たすかどうか、というような判断をするときに使います」

1. 論理演算子とは?

1. 論理演算子とは?
1. 論理演算子とは?

C++の論理演算子は、複数の条件を組み合わせて、 最終的に正しいか間違っているかを判断するための仕組みです。 人が日常で「これも満たしていて、あれも満たしている」 「どちらか一方が当てはまればよい」 「この条件ではない」 という考え方をするのと同じ役割を持っています。 プログラムに複雑な判断をさせたいときに、 論理演算子は欠かせません。

2. 両方正しいときに使う「&&」

2. 両方正しいときに使う「&&」
2. 両方正しいときに使う「&&」

「&&」は、二つの条件がどちらも正しい場合に、 全体を正しいと判断する論理演算子です。 日本語で言うと「そして」に近い意味になります。 条件が一つでも間違っていると、 全体の結果は間違いになります。


int age = 20;
int height = 170;

if (age >= 18 && height >= 160) {
    std::cout << "条件を満たしています" << std::endl;
}

条件を満たしています

3. どちらか正しければよい「||」

3. どちらか正しければよい「||」
3. どちらか正しければよい「||」

「||」は、二つの条件のうち、 どちらか一方でも正しければ、 全体を正しいと判断します。 日常会話で言う「または」に近い考え方です。 どちらも間違っている場合だけ、 結果が間違いになります。


int score = 85;

if (score >= 90 || score >= 80) {
    std::cout << "合格ラインです" << std::endl;
}

合格ラインです

4. 条件を反転させる「!」

4. 条件を反転させる「!」
4. 条件を反転させる「!」

「!」は、条件の結果を反対にする論理演算子です。 正しい条件を間違いにし、 間違っている条件を正しい結果に変えます。 「ではない」という意味を持つため、 否定の判断をしたいときに使われます。


bool isRain = false;

if (!isRain) {
    std::cout << "雨は降っていません" << std::endl;
}

雨は降っていません

5. 論理演算子と比較演算子の組み合わせ

5. 論理演算子と比較演算子の組み合わせ
5. 論理演算子と比較演算子の組み合わせ

論理演算子は、 比較演算子と一緒に使われることがほとんどです。 数字を比べた結果を条件として受け取り、 それらを組み合わせて判断します。 一つ一つの条件は単純でも、 組み合わせることで、 現実に近い判断ができるようになります。


int age = 16;
int score = 70;

if (age < 18 && score >= 60) {
    std::cout << "条件付きで合格です" << std::endl;
}

条件付きで合格です

6. 初心者が混乱しやすいポイント

6. 初心者が混乱しやすいポイント
6. 初心者が混乱しやすいポイント

論理演算子で多い混乱は、 記号の意味を逆に覚えてしまうことです。 「&&」は両方必要、 「||」はどちらか一方でよい、 「!」は結果を反転させる、 という基本をしっかり覚えることが大切です。 また、条件が増えすぎると、 自分でも判断しづらくなるため、 最初は二つの条件から練習すると理解しやすくなります。

7. 論理演算子で考える判断の流れ

7. 論理演算子で考える判断の流れ
7. 論理演算子で考える判断の流れ

論理演算子は、 人の思考をそのままプログラムに写すための道具です。 「これとこれが当てはまるか」 「どちらかが成立しているか」 「この条件ではないか」 という考えを、 記号で表現します。 この考え方に慣れることで、 C++の条件式が自然に読めるようになります。

8. 論理演算子が使われる場面

8. 論理演算子が使われる場面
8. 論理演算子が使われる場面

論理演算子は、 入力チェックや制限判定など、 多くの場面で使われます。 複数の条件を同時に確認することで、 プログラムの安全性や正確さを高めます。 基本的な使い方を理解しておくことで、 C++のコード全体が読みやすくなります。

カテゴリの一覧へ
新着記事
New1
Rust
Rustの所有権(Ownership)の仕組みを完全ガイド!初心者でもわかるメモリ安全とムーブ
New2
C++
C++開発環境を最適化する方法!初心者向けに徹底解説(GCC, Clang, Visual Studio, CMake)
New3
C++
C++のビルドツール(Make・Ninja・MSBuild)の違いを完全ガイド!初心者でもわかる開発環境構築
New4
C++
C++のsizeof演算子を完全解説!初心者でもわかる役割と使いどころ
人気記事
No.1
Java&Spring記事人気No1
C言語
Visual Studio CodeでC言語を実行する方法【拡張機能の設定と実行手順】
No.2
Java&Spring記事人気No2
C言語
C言語開発でよく使われるエディタとIDEランキング【初心者向け完全ガイド】
No.3
Java&Spring記事人気No3
C言語
C言語をオンラインで実行できる便利なコンパイラサービスまとめ【初心者向け】
No.4
Java&Spring記事人気No4
C++
C++の主要な実装をわかりやすく解説!GCC・Clang・MSVCの違いと特徴
No.5
Java&Spring記事人気No5
C言語
C言語のソースコードとヘッダファイルの役割とは?初心者向けにわかりやすく解説!
No.6
Java&Spring記事人気No6
C言語
C言語を学ぶ初心者におすすめの環境構築手順【2025年版】
No.7
Java&Spring記事人気No7
C++
CMakeの役割と導入方法をやさしく解説!C++開発環境構築ガイド
No.8
Java&Spring記事人気No8
C++
MinGWとMSYS2でWindowsにC++環境を構築する方法を徹底解説!初心者でもできるセットアップガイド