プログラミング

C++超入門③ if文で条件によって処理を変えよう

if、else if、else、比較演算子、論理演算子、switch文を使い、条件によって動きが変わるプログラムを作ります。

第3回では、「点数が60点以上なら合格」のように、条件によって処理を変える方法を学びます。

プログラムに判断をさせるときに使うのがif文です。

この回でできるようになること

  • if文で条件を確認する
  • else ifとelseで複数の結果を作る
  • 複数の条件を組み合わせる
  • switch文で選択肢を分ける

if文の基本

if (条件) {
    条件が正しいときの処理
}

年齢が18以上か調べるコードは次のようになります。

int age = 20;

if (age >= 18) {
    std::cout << "18歳以上です。\n";
}

条件が正しいことをtrue、正しくないことをfalseと表します。

比較に使う記号

記号 意味
== 左右が等しい
!= 左右が等しくない
> 左が右より大きい
< 左が右より小さい
>= 左が右以上
<= 左が右以下

等しいか調べる記号は**==です。値を入れる=**とは役割が違います。

else ifとelse

複数の結果へ分けるときは、else ifとelseを使います。

#include <iostream>

int main() {
    int score = 0;
    std::cout << "点数を入力してください: ";
    std::cin >> score;

    if (score >= 80) {
        std::cout << "とてもよくできました。\n";
    } else if (score >= 60) {
        std::cout << "合格です。\n";
    } else {
        std::cout << "もう一度復習しましょう。\n";
    }

    return 0;
}

条件は上から順番に確認されます。85点の場合は最初の条件で処理が決まり、それより下の条件は確認されません。

条件を組み合わせる

記号 意味 読み方
&& 両方がtrue かつ
|| どちらかがtrue または
! trueとfalseを反対にする ではない
int age = 19;
bool hasTicket = true;

if (age >= 18 && hasTicket) {
    std::cout << "入場できます。\n";
}

この場合は、「18歳以上」と「チケットを持っている」の両方を満たす必要があります。

switch文

一つの値を、決まった選択肢ごとに分ける場合はswitch文も使えます。

int menu = 2;

switch (menu) {
    case 1:
        std::cout << "ゲームを開始します。\n";
        break;
    case 2:
        std::cout << "設定を開きます。\n";
        break;
    default:
        std::cout << "選択肢がありません。\n";
        break;
}

breakは、そのcaseの処理が終わったところでswitch文から抜ける命令です。

範囲を比べる場合はif文、番号や種類など決まった値を分ける場合はswitch文が分かりやすいことがあります。

小さな練習

年齢を入力し、12歳以下なら「子ども料金」、13歳以上なら「通常料金」と表示するプログラムを作ってください。

余裕があれば、65歳以上の「シニア料金」も追加してみましょう。

模範解答

#include <iostream>

int main() {
    int age = 0;
    std::cout << "年齢: ";
    std::cin >> age;

    if (age >= 65) {
        std::cout << "シニア料金\n";
    } else if (age <= 12) {
        std::cout << "子ども料金\n";
    } else {
        std::cout << "通常料金\n";
    }
    return 0;
}

解説

65歳以上という特別な条件を先に調べます。その後、12歳以下かどうかを判定し、どちらにも当てはまらない13〜64歳をelseで通常料金にしています。

まとめ

  • if文は、条件がtrueのときに処理を実行します。
  • else ifとelseを使うと、結果を複数に分けられます。
  • **===**は役割が違うので注意します。

前の記事:C++超入門② 変数・型・入力と計算を覚えよう

次の記事:C++超入門④ while文とfor文で処理を繰り返そう

← 記事一覧へ戻る