カテゴリ: C++ 更新日: 2026/03/18

C++のif-else・if-else ifを完全攻略!使い分けと条件分岐のコツ

if-else, if-else if の使い分け
if-else, if-else if の使い分け

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

生徒

「先生、C++で条件によって処理を変えるとき、if-elseとif-else ifのどちらを使えばいいのか迷ってしまいます。」

先生

「いいところに気づきましたね。選ぶべき道が二つなのか、それとも三つ以上なのかによって使い分けるのがポイントですよ。」

生徒

「なるほど!選択肢の数で決まるんですね。具体的な使い分け方を教えてください!」

先生

「もちろんです。初心者の方でも迷わないように、簡単な例えを使いながら順番に解説していきますね!」

1. if文とは?

1. if文とは?
1. if文とは?

C++のif文は、プログラム内で条件に応じて処理を分岐させるためのものです。例えば、ある条件が「真(true)」であれば特定の処理を実行し、そうでなければスキップする、といった操作が可能になります。分岐処理を理解することで、プログラムの流れを制御できるようになり、より複雑なアプリケーションを作ることができるようになります。

プログラミング未経験でパソコンを触ったことがない方でも、「もし〜なら、〜する」という日本語の文章を思い浮かべれば大丈夫です。コンピューターも、私たちが日常生活で判断を下すのと同じように、与えられた条件を一つずつ確認して動いているのです。

2. if-else文の役割!二つの選択肢を切り分ける

2. if-else文の役割!二つの選択肢を切り分ける
2. if-else文の役割!二つの選択肢を切り分ける

if-else(イフ・エルス)文は、条件が「合っているか、合っていないか」の二択で処理を分けたいときに使います。elseは日本語で「さもなければ」という意味です。「もし条件に合えばAをやり、さもなければBをやる」という、非常にシンプルな二分法です。

例えば、朝起きたときに「雨が降っているか」を確認するとします。雨なら「傘を持っていく」、雨でないなら「手ぶらで行く」。このように、どちらか一方を必ず選ぶような場面で、if-else文は最も力を発揮します。中途半端な状態がない「白か黒か」をはっきりさせるための構文と言えるでしょう。


bool is_raining = true; // 雨が降っているという設定

if (is_raining) {
    std::cout << "傘を持っていきます。" << std::endl;
} else {
    std::cout << "手ぶらで出かけます。" << std::endl;
}

傘を持っていきます。

3. if-else if文の役割!三つ以上の選択肢に対応する

3. if-else if文の役割!三つ以上の選択肢に対応する
3. if-else if文の役割!三つ以上の選択肢に対応する

一方で、if-else if(イフ・エルス・イフ)文は、選択肢が三つ以上ある場合に使います。最初のif文の条件が外れたとき、「じゃあ、次のこの条件はどうかな?」と追加の質問を重ねていくイメージです。これを使えば、より複雑な状況判断が可能になります。

例えば、テストの点数によって評価を変える場合を考えてみましょう。「80点以上なら合格」「50点以上なら再テスト」「それ以外なら不合格」という三つのルートがある場合、単純なif-elseだけでは対応できません。ここでelse ifを間に挟むことで、複数の条件を順番に判定していくことができるようになります。


int score = 65;

if (score >= 80) {
    std::cout << "合格です!" << std::endl;
} else if (score >= 50) {
    std::cout << "再テストの対象です。" << std::endl;
} else {
    std::cout << "不合格です。次回頑張りましょう。" << std::endl;
}

再テストの対象です。

4. 使い分けの決め手!「AかBか」それとも「AかBかCか」

4. 使い分けの決め手!「AかBか」それとも「AかBかCか」
4. 使い分けの決め手!「AかBか」それとも「AかBかCか」

if-elseとif-else ifを使い分ける最大の基準は、「可能性がいくつあるか」を見極めることです。もし、あなたの作りたいプログラムの分岐が、スイッチのONとOFFのようにパチパチと切り替わるだけならif-elseで十分です。しかし、信号機のように「赤、黄、青」と切り替わるならif-else ifが必要になります。

プログラミング初心者の方が陥りやすいのは、何でもかんでもif-else ifを使ってしまうことです。もちろん間違いではありませんが、二つの選択肢しかない場所に無理やりelse ifを使うと、後からコードを見返したときに「他にも条件があるのかな?」と混乱を招く原因になります。目的を最小限の記述で達成することが、綺麗なコードを書く第一歩です。

5. elseを省略できる場合とできない場合

5. elseを省略できる場合とできない場合
5. elseを省略できる場合とできない場合

実は、if文やelse if文を使った際、最後の else は必ずしも書く必要はありません。elseを書かない場合、どの条件にも当てはまらなかったときは「何もしない」という動作になります。しかし、予期せぬエラーを防ぐためには、どんな場合でも最後にelseを置いて「例外的な状況」を拾ってあげるのが親切な設計です。

パソコンを触ったことがない方にとって、「何もしない」という動作は少し不安に感じるかもしれません。例えば、入力された数字が予想外のものだったときに「エラーです」と表示するelseを用意しておけば、プログラムがなぜ止まったのかをすぐに理解できるようになります。これを防衛的プログラミングと呼び、不具合の少ないソフトを作るコツになります。

6. 実践例:おみくじプログラムで使い分けを体感しよう

6. 実践例:おみくじプログラムで使い分けを体感しよう
6. 実践例:おみくじプログラムで使い分けを体感しよう

ここでは、乱数(ランダムな数字)を使って、おみくじの結果を表示するプログラムを作ってみましょう。結果は「大吉」「中吉」「小吉」「凶」の四つあるので、if-else ifの出番です。乱数の生成には rand() という機能を使いますが、今は「サイコロを振るようなもの」と考えておけば大丈夫です。


#include <iostream>
#include <cstdlib>
#include <ctime>

int main() {
    std::srand(std::time(0)); // 乱数の準備
    int omikuji = std::rand() % 4; // 0から3までの数字をランダムに作る

    if (omikuji == 0) {
        std::cout << "大吉です!最高の一日になります。" << std::endl;
    } else if (omikuji == 1) {
        std::cout << "中吉です。良いことがあるかも。" << std::endl;
    } else if (omikuji == 2) {
        std::cout << "小吉です。普通が一番ですね。" << std::endl;
    } else {
        std::cout << "凶です。お気をつけて!" << std::endl;
    }

    return 0;
}

このように、複数の可能性を一つずつ順番に潰していくのがif-else ifの正しい使い方です。この形を覚えておけば、ほとんどの条件分岐に対応できるようになります。

7. 上から順番に判定される!条件の順番の重要性

7. 上から順番に判定される!条件の順番の重要性
7. 上から順番に判定される!条件の順番の重要性

if-else ifを使うときに絶対に忘れてはいけないのが、「上から順番にチェックされる」という点です。コンピューターは上にある条件が正しいと判断したら、その下のelse ifやelseはすべて無視して次に進んでしまいます。つまり、条件を書く順番を間違えると、思い通りの結果になりません。

例えば、「90点以上で特別賞」「80点以上で合格」という条件にしたいとき、先に「80点以上」を一番上に書いてしまうと、90点の人も「80点以上」の条件に引っかかってしまい、特別賞の処理までたどり着けなくなります。条件分岐を書くときは、範囲が狭いものや、優先度の高いものから上に置いていくのが鉄則です。

8. if文の入れ子(ネスト)とelse ifの違い

8. if文の入れ子(ネスト)とelse ifの違い
8. if文の入れ子(ネスト)とelse ifの違い

if文の中にさらにif文を入れることを「ネスト(入れ子)」と呼びますが、これはelse ifとは少し意味が異なります。ネストは「第一関門を突破した人の中で、さらに第二関門を調べる」という二重チェックの構造です。一方、else ifは「第一志望がダメなら第二志望……」と並列に並んでいる状態です。

「会員かどうか」を確認し、会員ならさらに「ダイヤモンド会員か」を調べるような場合はネストを使います。一方で「会員」「非会員」「休止中」という区分ならelse ifを使います。この構造の違いを意識できるようになると、プログラムのロジック(論理)が整理され、誰が見ても分かりやすいコードになります。パソコン操作に慣れていない方でも、この整理整頓の考え方は日常生活の片付けと同じですよ。


bool is_member = true;
int points = 1000;

if (is_member) {
    if (points >= 1000) {
        std::cout << "特別会員様ですね。" << std::endl;
    } else {
        std::cout << "一般会員様ですね。" << std::endl;
    }
} else {
    std::cout << "ゲスト様ですね。" << std::endl;
}

9. 条件分岐をマスターしてC++をもっと楽しく

9. 条件分岐をマスターしてC++をもっと楽しく
9. 条件分岐をマスターしてC++をもっと楽しく

if-elseとif-else ifの使い分けができるようになれば、あなたの作るプログラムはぐっと知的なものに変わります。状況に応じて態度を変える、まるで生きているかのようなソフトウェアの基礎がここにあります。初心者のうちは、まずは図を描いたりして「選択肢がいくつあるか」を整理してからコードを書き始めるのがおすすめです。

パソコンの操作に不慣れでも、C++のロジックは非常にシンプルで数学的です。今回学んだ「二択ならelse」「多択ならelse if」という基本さえ守れば、大きな間違いは起こりません。エラーが出てもそれはコンピューターからの「ここが分からないよ」というアドバイスです。何度も条件を書き換えて、思い通りに分岐する楽しさを味わってみてください。一歩ずつ、確実にC++の階段を上っていきましょう!

カテゴリの一覧へ
新着記事
New1
C++
C++の関数の作り方を完全ガイド!初心者でもわかる基本構文と定義方法
New2
Rust
Rustのビット演算子とビット操作を徹底解説!低レイヤ開発への第一歩
New3
C言語
C言語の配列名はポインタ?暗黙の変換を初心者向けにわかりやすく解説
New4
C++
C++が今でも現役で使われる理由を徹底解説!長年愛されるプログラミング言語の魅力
人気記事
No.1
Java&Spring記事人気No1
C言語
C言語を学ぶ初心者におすすめの環境構築手順【2025年版】
No.2
Java&Spring記事人気No2
C言語
C言語のソースコードとヘッダファイルの役割とは?初心者向けにわかりやすく解説!
No.3
Java&Spring記事人気No3
C++
MinGWとMSYS2でWindowsにC++環境を構築する方法を徹底解説!初心者でもできるセットアップガイド
No.4
Java&Spring記事人気No4
C言語
Visual Studio CodeでC言語を実行する方法【拡張機能の設定と実行手順】
No.5
Java&Spring記事人気No5
C言語
LinuxでC言語開発環境を構築する方法【GCCとMakefileの基本】
No.6
Java&Spring記事人気No6
C言語
C言語開発でよく使われるエディタとIDEランキング【初心者向け完全ガイド】
No.7
Java&Spring記事人気No7
C言語
C言語をオンラインで実行できる便利なコンパイラサービスまとめ【初心者向け】
No.8
Java&Spring記事人気No8
C++
CMakeの基本構文とCMakeLists.txtを初心者向けに解説