C++の論理演算子を完全解説!初心者でもわかる && || ! の使い方
生徒
「C++の条件式で、アンパサンドが二つ並んでいたり、縦線が二本あったりするのを見ました。これは何ですか?」
先生
「それは論理演算子といって、複数の条件をまとめて判断するときに使います」
生徒
「条件をまとめるというのは、どういうことですか?」
先生
「例えば、年齢と身長の両方を満たすかどうか、というような判断をするときに使います」
1. 論理演算子とは?
C++の論理演算子は、複数の条件を組み合わせて、 最終的に正しいか間違っているかを判断するための仕組みです。 人が日常で「これも満たしていて、あれも満たしている」 「どちらか一方が当てはまればよい」 「この条件ではない」 という考え方をするのと同じ役割を持っています。 プログラムに複雑な判断をさせたいときに、 論理演算子は欠かせません。
2. 両方正しいときに使う「&&」
「&&」は、二つの条件がどちらも正しい場合に、 全体を正しいと判断する論理演算子です。 日本語で言うと「そして」に近い意味になります。 条件が一つでも間違っていると、 全体の結果は間違いになります。
int age = 20;
int height = 170;
if (age >= 18 && height >= 160) {
std::cout << "条件を満たしています" << std::endl;
}
条件を満たしています
3. どちらか正しければよい「||」
「||」は、二つの条件のうち、 どちらか一方でも正しければ、 全体を正しいと判断します。 日常会話で言う「または」に近い考え方です。 どちらも間違っている場合だけ、 結果が間違いになります。
int score = 85;
if (score >= 90 || score >= 80) {
std::cout << "合格ラインです" << std::endl;
}
合格ラインです
4. 条件を反転させる「!」
「!」は、条件の結果を反対にする論理演算子です。 正しい条件を間違いにし、 間違っている条件を正しい結果に変えます。 「ではない」という意味を持つため、 否定の判断をしたいときに使われます。
bool isRain = false;
if (!isRain) {
std::cout << "雨は降っていません" << std::endl;
}
雨は降っていません
5. 論理演算子と比較演算子の組み合わせ
論理演算子は、 比較演算子と一緒に使われることがほとんどです。 数字を比べた結果を条件として受け取り、 それらを組み合わせて判断します。 一つ一つの条件は単純でも、 組み合わせることで、 現実に近い判断ができるようになります。
int age = 16;
int score = 70;
if (age < 18 && score >= 60) {
std::cout << "条件付きで合格です" << std::endl;
}
条件付きで合格です
6. 初心者が混乱しやすいポイント
論理演算子で多い混乱は、 記号の意味を逆に覚えてしまうことです。 「&&」は両方必要、 「||」はどちらか一方でよい、 「!」は結果を反転させる、 という基本をしっかり覚えることが大切です。 また、条件が増えすぎると、 自分でも判断しづらくなるため、 最初は二つの条件から練習すると理解しやすくなります。
7. 論理演算子で考える判断の流れ
論理演算子は、 人の思考をそのままプログラムに写すための道具です。 「これとこれが当てはまるか」 「どちらかが成立しているか」 「この条件ではないか」 という考えを、 記号で表現します。 この考え方に慣れることで、 C++の条件式が自然に読めるようになります。
8. 論理演算子が使われる場面
論理演算子は、 入力チェックや制限判定など、 多くの場面で使われます。 複数の条件を同時に確認することで、 プログラムの安全性や正確さを高めます。 基本的な使い方を理解しておくことで、 C++のコード全体が読みやすくなります。