条件分岐

[C++] if文入門:条件分岐の基本を学ぼう

C++のif文は、条件分岐を実現する基本構文で、特定の条件が真の場合にのみコードを実行します。

構文はif (条件) { 実行するコード }の形式で、条件には論理式を記述します。

条件が偽の場合に別の処理を行うにはelseを使用します。

また、複数の条件を評価する場合はelse ifを追加できます。

条件式には比較演算子(例:==, !=, <, >)や論理演算子(例:&&, ||)を組み合わせて使用可能です。

if文はプログラムの流れを制御する重要な要素で、柔軟なロジック構築を可能にします。

if文とは?基本構文を理解しよう

C++におけるif文は、条件に基づいてプログラムの実行フローを制御するための基本的な構文です。

if文を使用することで、特定の条件が真(true)である場合にのみ、特定の処理を実行することができます。

これにより、プログラムに柔軟性を持たせることが可能になります。

基本構文

if文の基本的な構文は以下の通りです。

#include <iostream>
int main() {
    int number = 10; // 判定する数値
    // if文の基本構文
    if (number > 5) {
        std::cout << "数値は5より大きいです。" << std::endl; // 条件が真の場合の処理
    }
    return 0;
}

このコードでは、numberが5より大きい場合に「数値は5より大きいです。」と出力されます。

数値は5より大きいです。
  • if文は、条件式が真である場合にのみ、ブロック内の処理を実行します。
  • 条件式は、比較演算子(例:><==など)を使用して構成されます。
  • 条件が偽(false)の場合、if文内の処理はスキップされます。

このように、if文を使うことで、プログラムの動作を条件に応じて変えることができます。

比較演算子と論理演算子の基礎

C++において、条件式を構成するためには比較演算子と論理演算子を理解することが重要です。

これらの演算子を使用することで、複雑な条件を作成し、プログラムの制御をより柔軟に行うことができます。

比較演算子

比較演算子は、2つの値を比較し、その結果を真(true)または偽(false)で返します。

以下は、主な比較演算子の一覧です。

演算子説明
==等しいa == b
!=等しくないa != b
>より大きいa > b
<より小さいa < b
>=以上a >= b
<=以下a <= b

論理演算子

論理演算子は、複数の条件を組み合わせて新しい条件を作成するために使用されます。

主な論理演算子は以下の通りです。

演算子説明
&&論理AND(両方が真)a > 5 && b < 10
||論理OR(どちらかが真)a < 5 || b > 10
!論理NOT(真を偽に)!a

以下のコードは、比較演算子と論理演算子を使用した例です。

#include <iostream>
int main() {
    int a = 7;
    int b = 10;
    // 複数の条件を使用したif文
    if (a < b && b > 5) {
        std::cout << "aはbより小さく、bは5より大きいです。" << std::endl; // 両方の条件が真の場合
    }
    if (a == 7 || b == 5) {
        std::cout << "aは7またはbは5です。" << std::endl; // どちらかの条件が真の場合
    }
    return 0;
}
aはbより小さく、bは5より大きいです。
aは7またはbは5です。
  • 比較演算子を使用することで、数値や変数の関係を評価できます。
  • 論理演算子を使うことで、複数の条件を組み合わせて、より複雑な条件式を作成できます。
  • これにより、プログラムの制御がより強力になります。

else文とelse if文の使い方

if文に加えて、C++ではelse文とelse if文を使用することで、条件分岐をさらに柔軟に行うことができます。

これにより、複数の条件を評価し、それぞれに対する処理を指定することが可能になります。

else文の基本

else文は、if文の条件が偽(false)である場合に実行される処理を指定します。

以下は、else文の基本的な構文です。

#include <iostream>
int main() {
    int number = 3; // 判定する数値
    // if文とelse文の使用例
    if (number > 5) {
        std::cout << "数値は5より大きいです。" << std::endl; // 条件が真の場合
    } else {
        std::cout << "数値は5以下です。" << std::endl; // 条件が偽の場合
    }
    return 0;
}
数値は5以下です。

else if文の基本

else if文を使用することで、複数の条件を連続して評価することができます。

これにより、条件が複数ある場合でも、各条件に対する処理を明確に記述できます。

以下は、else if文の使用例です。

#include <iostream>
int main() {
    int number = 7; // 判定する数値
    // if文、else if文、else文の使用例
    if (number > 10) {
        std::cout << "数値は10より大きいです。" << std::endl; // 条件1
    } else if (number > 5) {
        std::cout << "数値は5より大きいですが、10以下です。" << std::endl; // 条件2
    } else {
        std::cout << "数値は5以下です。" << std::endl; // 条件3
    }
    return 0;
}
数値は5より大きいですが、10以下です。
  • else文は、if文の条件が偽の場合に実行される処理を指定します。
  • else if文を使用することで、複数の条件を順に評価し、最初に真となった条件に対する処理を実行します。
  • これにより、プログラムの条件分岐がより明確になり、可読性が向上します。

実践:if文を使った簡単なプログラム例

ここでは、if文を使った簡単なプログラムの例を紹介します。

このプログラムでは、ユーザーから入力された数値が偶数か奇数かを判定し、その結果を出力します。

プログラムの概要

  • ユーザーから整数を入力してもらう
  • 入力された数値が偶数か奇数かを判定する
  • 判定結果を出力する

以下が、if文を使用したプログラムのコードです。

#include <iostream>
int main() {
    int number; // ユーザーからの入力を格納する変数
    std::cout << "整数を入力してください: "; // ユーザーへのメッセージ
    std::cin >> number; // ユーザーからの入力を受け取る
    // 偶数か奇数かを判定する
    if (number % 2 == 0) {
        std::cout << "入力された数値は偶数です。" << std::endl; // 偶数の場合の出力
    } else {
        std::cout << "入力された数値は奇数です。" << std::endl; // 奇数の場合の出力
    }
    return 0;
}

このプログラムを実行し、例えば 4 と入力した場合の出力は以下の通りです。

整数を入力してください: 4
入力された数値は偶数です。

また、 5 と入力した場合の出力は以下の通りです。

整数を入力してください: 5
入力された数値は奇数です。
  • std::cinを使用してユーザーからの入力を受け取ります。
  • if文を使って、入力された数値が偶数か奇数かを判定します。

偶数の場合はnumber % 2 == 0が真となり、奇数の場合は偽となります。

  • 判定結果に応じて、適切なメッセージを出力します。

このように、if文を使うことで、ユーザーの入力に基づいてプログラムの動作を変えることができます。

条件式の応用テクニック

C++のif文や条件式は、基本的な使い方だけでなく、さまざまな応用が可能です。

ここでは、条件式をより効果的に活用するためのテクニックをいくつか紹介します。

1. ネストされたif文

if文の中に別のif文を入れることで、より複雑な条件を評価することができます。

これを「ネストされたif文」と呼びます。

#include <iostream>
int main() {
    int score; // ユーザーのスコアを格納する変数
    std::cout << "スコアを入力してください: ";
    std::cin >> score; // ユーザーからの入力を受け取る
    if (score >= 60) {
        std::cout << "合格です。" << std::endl; // 合格の場合
        if (score >= 80) {
            std::cout << "優秀です。" << std::endl; // 優秀の場合
        }
    } else {
        std::cout << "不合格です。" << std::endl; // 不合格の場合
    }
    return 0;
}

2. 条件演算子(三項演算子)の活用

条件演算子を使用することで、if文を簡潔に書くことができます。

条件演算子は、条件 ? 真の場合の値 : 偽の場合の値という形式で使用します。

#include <iostream>
int main() {
    int number; // ユーザーからの入力を格納する変数
    std::cout << "整数を入力してください: ";
    std::cin >> number; // ユーザーからの入力を受け取る
    // 条件演算子を使用して偶数か奇数かを判定
    std::string result = (number % 2 == 0) ? "偶数です。" : "奇数です。";
    std::cout << "入力された数値は" << result << std::endl; // 判定結果を出力
    return 0;
}

3. 複数の条件を組み合わせる

論理演算子を使用して、複数の条件を組み合わせることで、より複雑な条件式を作成できます。

#include <iostream>
int main() {
    int age; // ユーザーの年齢を格納する変数
    std::cout << "年齢を入力してください: ";
    std::cin >> age; // ユーザーからの入力を受け取る
    // 年齢に基づいてメッセージを出力
    if (age < 13) {
        std::cout << "子供です。" << std::endl; // 13歳未満
    } else if (age < 20) {
        std::cout << "ティーンエイジャーです。" << std::endl; // 13歳以上20歳未満
    } else {
        std::cout << "大人です。" << std::endl; // 20歳以上
    }
    return 0;
}

4. switch文の活用

複数の条件を評価する場合、switch文を使用することで、if文よりも可読性が高くなります。

特に、特定の値に基づく条件分岐に適しています。

#include <iostream>
int main() {
    int day; // 曜日を表す数値
    std::cout << "曜日を数字で入力してください (1: 月曜日, 2: 火曜日, ..., 7: 日曜日): ";
    std::cin >> day; // ユーザーからの入力を受け取る
    switch (day) {
        case 1:
            std::cout << "月曜日です。" << std::endl;
            break;
        case 2:
            std::cout << "火曜日です。" << std::endl;
            break;
        case 3:
            std::cout << "水曜日です。" << std::endl;
            break;
        case 4:
            std::cout << "木曜日です。" << std::endl;
            break;
        case 5:
            std::cout << "金曜日です。" << std::endl;
            break;
        case 6:
            std::cout << "土曜日です。" << std::endl;
            break;
        case 7:
            std::cout << "日曜日です。" << std::endl;
            break;
        default:
            std::cout << "無効な入力です。" << std::endl; // 無効な場合
            break;
    }
    return 0;
}
  • ネストされたif文を使用することで、条件を階層的に評価できます。
  • 条件演算子を使うことで、簡潔に条件分岐を記述できます。
  • 複数の条件を論理演算子で組み合わせることで、より複雑な条件を作成できます。
  • switch文を使用することで、特定の値に基づく条件分岐をより明確に記述できます。

これらのテクニックを活用することで、条件式をより効果的に使いこなすことができ、プログラムの可読性や保守性が向上します。

まとめ

この記事では、C++におけるif文や条件分岐の基本から応用テクニックまでを紹介しました。

条件式を使うことで、プログラムの動作を柔軟に制御できることがわかりました。

これを機に、実際のプログラムに条件分岐を取り入れて、より複雑なロジックを実装してみてください。

関連記事

Back to top button
目次へ