C++の論理演算子を使った条件分岐の書き方と注意点

C++の論理演算子(Logical Operators)は、複数の条件を組み合わせて判定したいときに欠かせない重要な構文です。本記事では、||(論理和)と&&(論理積)の基本的な使い方を、簡単なサンプルコードとともにわかりやすく解説いたします。


目次

サンプルコード(C++)

以下は、ユーザーの入力に対して論理演算子を使って条件を判定するプログラムです。

#include <iostream>
using namespace std;

int main()
{
    char answer;

    cout << "この製品に満足していますか?" << endl;
    cout << "Y または N を入力してください。" << endl;
    cin >> answer;

    if (answer == 'Y' || answer == 'y') {
        cout << "ご満足いただけて嬉しいです。" << endl;
    }
    else if (answer == 'N' || answer == 'n') {
        cout << "ご意見ありがとうございます。改善に努めます。" << endl;
    }
    else {
        cout << "Y または N を入力してください。" << endl;
    }

    return 0;
}

コードの解説

このプログラムでは、次のような処理が行われています。

  1. 変数 answer に、ユーザーの入力(YまたはN)を格納します。
  2. if 文の中で ||(論理和)を使い、Y または y が入力されたかを判定します。
  3. else if では、N または n が入力されたかを同様に判定します。
  4. それ以外の入力に対しては、正しい文字を求めるメッセージを表示します。

論理演算子の基本

演算子説明使用例
``
&&論理積(かつ)A && B → 両方とも真
!否定(not)!A → Aが偽なら真

このコードでは || を使って、いずれかの条件が成り立てば真とみなす処理を記述しています。


よくあるミスと対策

このような論理演算子を使う際にありがちなミスは、括弧の不足や構文の誤りです。たとえば以下のようなコードは、正しく動作しません。

if (answer == 'Y' || 'y') // 誤り

これは answer == 'Y' か、'y' そのものが真(非ゼロ)であるかを判定してしまい、常に真と評価される可能性があります。正しくは以下のように記述します。

if (answer == 'Y' || answer == 'y') // 正しい

まとめ

  • 論理演算子を使えば、複数の条件をまとめて判定できます。
  • || は「または」、&& は「かつ」、! は「否定」を意味します。
  • 比較対象が複数ある場合でも、毎回明示的に比較することが重要です。
  • 論理演算子は、if文と組み合わせることで柔軟な条件分岐が可能になります。

C++を使ったプログラミングにおいて、論理演算子の正しい理解と使い方は非常に重要です。初学者の方は、意味を正確に把握した上で、間違いのない記述を心がけましょう。

よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!

この記事を書いた人

私が勉強したこと、実践したこと、してることを書いているブログです。
主に資産運用について書いていたのですが、
最近はプログラミングに興味があるので、今はそればっかりです。

目次