C++
 Computer >> コンピューター >  >> プログラミング >> C++

【C++入門】if文・if...else文・else if文の使い方をステップバイステップで解説

if...elseはC++における条件分岐(条件文)です。C++のif文は、条件が満たされた場合にコードブロックを実行します。if...else文も同様に機能しますが、条件が満たされなかった場合に実行される別のコードブロックを持つ点が異なります。また、if文やif...else文はネスト(入れ子)にすることも可能です。


条件分岐はなぜ重要なのか

条件分岐は、あらゆるプログラミング言語において不可欠な要素です。条件分岐を使うことで、開発者はプログラム内で特定の条件が満たされているかどうかに応じて、コードを実行するかどうかを制御できます。

C++では、if文やif...else文が条件式の真偽を評価し、その結果が真(true)である場合にのみコードブロックを実行します。

この記事では、具体例を交えながら、C++の条件分岐の基本と、if文、if...else文、else if文の書き方について解説します。読み終える頃には、これらの構文をプロのように使いこなせるようになっているでしょう。

C++における条件分岐とは

開発者は、コードブロックを実行するための条件を定義する際に条件分岐を使用します。条件分岐内のコードブロックが実行されるかどうかは、特定の条件(または複数の条件)が満たされているかどうかによって決まります。以下に、条件分岐が活用される典型的な例を挙げます。

  • 買い物客の口座に十分な残高があれば決済を処理し、残高不足であれば決済を拒否する。
  • 顧客が17歳以上であれば映画の視聴を許可し、そうでなければ入場を拒否する。
  • パン屋の小麦粉の在庫が15袋未満であれば新しいケースを発注し、そうでなければ何もしない。

このように、ある条件が満たされた場合にのみ特定の処理を実行したい場面は数多くあります。そんなときに役立つのがif文とif...else文です。

C++のif文

C++のif文は、式が真(true)か偽(false)かを評価します。式が真と評価されれば、条件分岐内のコードが実行され、そうでなければ実行されません。

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

if (条件式) {
    // 条件がtrueの場合に実行されるコード
}

実際に例を見ながら、if文の動作を確認しましょう。ここでは、パン屋が新しい小麦粉のケースを発注すべきかどうかを判定するプログラムを書くとします。在庫の小麦粉が15袋未満の場合、新しいケースを発注する必要があります。

このタスクは、以下のコードで実現できます。

#include <iostream>
using namespace std;

int main() {
    int flourBagCount = 12;

    if (flourBagCount < 15) {
        cout << "在庫の小麦粉が足りません。" << endl;
    }
    return 0;
}

このコードを実行すると、コンソールには次のように表示されます。

在庫の小麦粉が足りません。

この例を分解して見ていきましょう。まず、flourBagCountという変数を宣言し、在庫にある小麦粉の袋数を格納します。次に、if文で在庫の小麦粉が15袋未満かどうかをチェックします。

変数flourBagCountが15より小さい場合、「在庫の小麦粉が足りません。」というメッセージがコンソールに出力されます。そうでなければ何も起こりません。この例では、flourBagCountは12であり、15より小さいため、if文内のコードが実行されます。

C++のif...else文

if文を使っていると、条件が偽(false)と評価されたときに、単に処理をスキップするのではなく、別の処理を実行したい場合があるでしょう。

if...else文は、if文と同様に条件をチェックします。条件が満たされていれば、文のif部分の内容が実行されます。しかし、if文とは異なり、条件が満たされなかった場合には、else文の内容が実行されます。

if...else文の基本構文は以下の通りです。

if (条件式) {
    // 条件がtrueの場合に実行されるコード
} else {
    // 条件がfalseの場合に実行されるコード
}

先ほどのパン屋の例に戻りましょう。前の例では、在庫が15袋未満の場合に、パン職人に対して小麦粉が足りないことを知らせるメッセージをコンソールに出力していました。しかし、在庫が十分にある場合には何も表示されませんでした。

ここで、在庫が15袋以上ある場合に「小麦粉の在庫は十分にある」というメッセージを表示したいとしましょう。そんなときにif...else文が役立ちます。以下のコードでは、在庫が十分にある場合に特定のメッセージを出力するようプログラムに指示しています。

#include <iostream>
using namespace std;

int main() {
    int flourBagCount = 16;

    if (flourBagCount < 15) {
        cout << "在庫の小麦粉が足りません。" << endl;
    } else {
        cout << "在庫の小麦粉は十分にあります。" << endl;
    }
    return 0;
}

このコードを実行すると、次の出力が得られます。

在庫の小麦粉は十分にあります。

この例では、変数flourBagCountの値を16に変更し、さらにelse文を追加しました。

flourBagCountは15より小さくないため、if文は偽(false)と評価されます。その結果、プログラムはelse文の内容を実行し、コンソールに「在庫の小麦粉は十分にあります。」というテキストが出力されます。

なお、C++ではif文のネスト(入れ子)、つまり別の文の中にif文やif...else文を記述することもできます。ただし、複数の条件を扱う場合は、else if文を使う方がコードがすっきりすることが多いです。

C++のelse if文

ここまで、条件が真(true)と評価された場合の処理をif文で記述する方法と、直前のif文が偽(false)と評価された場合に特定のコードを実行するelseブロックの使い方を解説してきました。では、複数の条件をチェックして、いずれかの条件が真であれば対応するコードブロックを実行したい場合はどうすればよいのでしょうか?

プログラム内で複数の条件をチェックするには、else if文を使用します。C++におけるelse if文の基本構文は以下の通りです。

if (条件式1) {
    // 条件式1がtrueの場合に実行されるコード
} else if (条件式2) {
    // 条件式1がfalseで条件式2がtrueの場合に実行されるコード
} else {
    // すべての条件式がfalseの場合に実行されるコード
}

実際の例を通して、else if文の仕組みを見ていきましょう。

先ほどのパン屋のプログラムに、在庫の小麦粉の袋数が15袋以上20袋以下の場合にパン職人へ通知するメッセージを追加したいとします。プログラムに期待する動作は以下の通りです。

  1. 在庫が20袋を超えている場合:「在庫の小麦粉は十分にあります。」と出力する。
  2. 在庫が15袋以上20袋以下の場合:「まもなく小麦粉を発注してください。」と出力する。
  3. 在庫が15袋未満の場合:「在庫の小麦粉が足りません。」と出力する。

このプログラムは、以下のコードで実現できます。

#include <iostream>
using namespace std;

int main() {
    int flourBagCount = 16;

    if (flourBagCount > 20) {
        cout << "在庫の小麦粉は十分にあります。" << endl;
    } else if (flourBagCount <= 20 && flourBagCount >= 15) {
        cout << "まもなく小麦粉を発注してください。" << endl;
    } else {
        cout << "在庫の小麦粉が足りません。" << endl;
    }
    return 0;
}

このコードを実行すると、次の出力が得られます。

まもなく小麦粉を発注してください。

この例では、プログラムが2つの条件をチェックし、両方とも偽(false)だった場合に実行されるelse文を含んでいます。

まず、最初の条件文で変数flourBagCountの値が20より大きいかどうかをチェックします。大きければ、「在庫の小麦粉は十分にあります。」というメッセージがコンソールに出力されます。

この条件が偽と評価された場合、次にelse if文が評価されます。この例では、else if文がflourBagCountの値が20以下かつ15以上であるかどうかをチェックします。両方の条件が真であれば、「まもなく小麦粉を発注してください。」というメッセージがコンソールに出力されます。上記の例では、まさにこのケースに該当しました。

そして、コード内の両方の条件文(ifelse if)が偽と評価された場合、プログラムはelse文内のコードを実行します。この場合、「在庫の小麦粉が足りません。」というメッセージが出力されます。

まとめ

C++では、if文やif...else文を使ってプログラムの流れを制御できます。

  • if文:条件が真かどうかを評価し、真であれば特定のコードを実行する。
  • else if文:2番目以降の条件が真かどうかを評価し、真であれば特定のコードを実行する。
  • else文:if文で指定したどの条件も真と評価されなかった場合に、特定のコードを実行する。

この記事では、具体例を交えながら、C++でのif文、if...else文、else if文の使い方を解説しました。これであなたも、プロの開発者のようにC++の条件分岐を使いこなせるはずです。

  1. JavaScriptの条件分岐とは?if文・else文・else if文の使い方を解説

    JavaScriptには、条件に応じて処理を切り替えるための「条件分岐(条件文)」が用意されています。条件式が真(true)か偽(false)かを評価することで、実行するコードを制御できます。代表的な条件文は次の3種類です。 if文 − 指定した条件が満たされた場合にのみ、ifブロック内のコードを実行します。最も基本的な条件分岐です。 if…else文 − 条件が真の場合と偽の場合で、それぞれ異なる処理を実行したいときに使います。2つのケースを切り替えるのに適しています。 if…else if…else文 − 3つ以上の条件を扱いたい場合に使用します。条件を上から順に評価し、最初に一致したブ

  2. C++における条件分岐の基礎:if-else文とswitch文の使い方を徹底解説

    条件分岐(意思決定)構造では、プログラマーがプログラムに評価・判定させる1つ以上の条件を指定し、その条件が「真(true)」と判定された場合に実行する文、さらに必要に応じて、条件が「偽(false)」と判定された場合に実行する別の文を記述する必要があります。 以下は、多くのプログラミング言語に共通する、典型的な条件分岐構造の一般的な流れを示した図です。 if-else文とは if文の後には、オプションとしてelse文を続けることができます。else文は、ifのブール式が「偽」と判定された場合に実行されます。C++におけるif...else文の基本構文は以下の通りです。 if(boolean