C++のif文を完全解説!条件分岐の基本構文から実践的な書き方まで
生徒
「先生、C++で『もし〜だったらこの処理をする』という風に、条件によって動きを変えることはできますか?」
先生
「はい、もちろんです!C++では『if文』という構文を使うことで、簡単に条件分岐を作ることができますよ。」
生徒
「条件分岐ができると、どんな良いことがあるんですか?」
先生
「例えば、ゲームで体力が0になったらゲームオーバーにしたり、入力された年齢によって大人か子供か判定したりと、プログラムが状況に合わせて判断できるようになります。」
1. if文とは?プログラムに判断力を与える魔法
C++のif文は、プログラム内で条件に応じて処理を分岐させるためのものです。例えば、ある条件が「真(true)」であれば特定の処理を実行し、そうでなければスキップする、といった操作が可能になります。分岐処理を理解することで、プログラムの流れを制御できるようになり、より複雑なアプリケーションを作ることができるようになります。
プログラミング未経験の方には、「もし雨が降っていたら傘を差す」という日常の行動をイメージすると分かりやすいでしょう。この場合の「雨が降っている」が条件であり、「傘を差す」が実行される処理にあたります。このように、ある特定の状況だけで動かしたい処理があるときにif文は大活躍します。
2. if文の基本構文!正しい書き方を覚えよう
if文の書き方は非常にシンプルです。まず「if」と書き、その後の丸括弧「()」の中に判定したい条件を入れます。そして、その条件が満たされたときに実行したい内容を波括弧「{}」の中に記述します。
ここで出てくる「丸括弧」や「波括弧」は、パソコンのキーボードで入力する記号のことです。プログラミングでは、これらの記号を正確に配置することが非常に重要です。もし記号を一つでも忘れると、コンピューターは「どうすればいいか分からない!」とエラーを出してしまいます。まずは、基本の形をしっかり目に焼き付けましょう。
int score = 90;
if (score >= 80) {
std::cout << "合格です!おめでとうございます。" << std::endl;
}
このプログラムでは、スコアが80点以上なので、画面に合格のメッセージが表示されます。
合格です!おめでとうございます。
3. 条件を満たさない時の処理「else」の使い方
「もし条件に合わなかったら別のことをしたい」という場合には、else(エルス)を使います。elseを直訳すると「さもなければ」という意味になります。if文の波括弧が終わった後にelseを追加することで、「条件に合わなかった場合の専用ルート」を作ることができます。
例えば、宝くじが当たった場合は「豪華な食事をする」、外れた場合は「家でゆっくりする」といった二択の動きをプログラムに教えることができます。これによって、どんな状況でも必ず何かしらのアクションを起こす、丁寧なプログラムになります。
int money = 300;
if (money >= 500) {
std::cout << "豪華なランチを食べます。" << std::endl;
} else {
std::cout << "おにぎりを買って帰ります。" << std::endl;
}
おにぎりを買って帰ります。
4. たくさんの条件を分ける「else if」
二択だけでなく、「1位なら金メダル、2位なら銀メダル、3位なら銅メダル、それ以外なら参加賞」のように、たくさんの条件に分けたいときもあります。そんな時に便利なのが else if(エルス・イフ)です。
else ifを使うと、最初のif文がダメだった場合に、次の条件をチェックし、それがダメならさらに次の条件……という風に、順番に判定していくことができます。これを活用すれば、非常に細かく状況を分析して、最適な答えを出すプログラムを構築することが可能になります。
int rank = 2;
if (rank == 1) {
std::cout << "金メダルです!" << std::endl;
} else if (rank == 2) {
std::cout << "銀メダルです!" << std::endl;
} else if (rank == 3) {
std::cout << "銅メダルです!" << std::endl;
} else {
std::cout << "お疲れ様でした!" << std::endl;
}
銀メダルです!
5. 比較演算子をマスターしよう!記号の役割解説
if文の条件式の中でよく使われるのが「比較演算子(ひかくえんざんし)」という記号です。これは、二つの値を比べるために使われます。パソコンを初めて触る方は、数学で習った記号と少し形が違うものがあるので注意が必要です。
==:右と左が等しい(イコールを二つ書くのがポイント!)!=:右と左が等しくない>/<:より大きい / より小さい>=/<=:以上 / 以下
特に間違いやすいのが「等しい」を表す == です。一つだけの = は「代入(値を箱に入れること)」という意味になってしまうので、if文の中で使うときは必ず二つ重ねて書くというルールを忘れないでくださいね。この記号を使いこなすことが、条件分岐をマスターする第一歩です。
6. 論理演算子で複雑な条件を作る方法
「テストが80点以上、かつ、出席率が90%以上なら合格」のように、複数の条件を組み合わせたいときは「論理演算子(ろんりえんざんし)」を使います。これは、複数の条件を「かつ(AND)」や「または(OR)」で繋ぐための便利な道具です。
&&:かつ(両方の条件が満たされたら正解)||:または(どちらか片方でも満たされたら正解)!:〜ではない(条件をひっくり返す)
これを使えば、単純な比較だけでは作れない、より高度なルールをプログラムに組み込むことができます。例えば「週末、または、祝日なら休園日」といった複雑なスケジュール管理も、この演算子があれば一瞬で判定できるようになります。
int temperature = 25;
bool is_sunny = true;
if (temperature >= 20 && is_sunny) {
std::cout << "絶好のピクニック日和です!" << std::endl;
}
「気温が20度以上」という条件と「晴れている」という二つの条件を同時に満たした場合だけ、メッセージが表示されます。
絶好のピクニック日和です!
7. 入れ子構造「ネスト」でより深い分岐を作る
if文の中に、さらにif文を入れることを「ネスト(入れ子)」と呼びます。これは、ある大きな条件をクリアした後に、さらに細かい条件で調べたいときに使います。
例えば、まず「会員かどうか」をチェックし、もし会員だったら次に「ポイントが貯まっているか」を確認する、といった二段構えの仕組みです。ネストを使いすぎるとコードが読みづらくなってしまうこともあるので、整理整頓を心がけるのが「綺麗なプログラム」を書くコツです。インデント(行の始まりにスペースを入れること)をしっかり行うことで、どこからどこまでが一つのグループなのかが見やすくなります。
8. C++における「真」と「偽」の正体
プログラミングでは、条件が合っている状態を「真(しん)」、合っていない状態を「偽(ぎ)」と呼びます。C++の内部では、これを「true(トゥルー)」と「false(フォルス)」という言葉で扱っています。
実は、C++では数字の「0」が「偽」として扱われ、それ以外の数字(1や100など)はすべて「真」として扱われるという面白い特徴があります。ですから、if (1) と書くと、条件は常に正しいと判断されて中身が実行されます。パソコン初心者のうちは少し不思議に感じるかもしれませんが、「0以外はOK!」と覚えておくと、後々非常に役立つ知識になりますよ。
9. if文を使う時のよくあるミスと対策
if文の学習で初心者が必ずと言っていいほどハマるポイントがいくつかあります。まず一つ目は、先ほども触れた「= と == の書き間違い」です。二つ目は、文の終わりに付けるセミコロン「;」の場所です。通常の命令には末尾に「;」を付けますが、if文の if (条件) の直後には付けてはいけません。
もし if (条件); と書いてしまうと、せっかくの条件分岐がそこで終わってしまい、下の波括弧の中身が条件に関わらず常に動いてしまうことになります。このような小さなミスは、プロのプログラマでも時々やってしまうものです。もし思った通りに動かないときは、まずは記号やセミコロンの場所をじっくり確認してみましょう。
10. 実践!if文を使った簡単なサンプルアプリ
最後に、これまで学んだことを活かして、入力された気温に合わせて服装のアドバイスをするプログラムを作ってみましょう。実際の開発でも、このように複数の条件を組み合わせることで、ユーザーにとって便利な機能を作っていきます。
#include <iostream>
int main() {
int temp = 15; // ここでは気温を15度とします
std::cout << "現在の気温は" << temp << "度です。" << std::endl;
if (temp >= 25) {
std::cout << "半袖で過ごせます。" << std::endl;
} else if (temp >= 10) {
std::cout << "上着が必要です。" << std::endl;
} else {
std::cout << "厚手のコートを着てください。" << std::endl;
}
return 0;
}
このプログラムを動かすと、現在の気温に基づいた適切なアドバイスが表示されます。条件を変えて何度も試すことで、if文の動きがより深く理解できるはずです。
現在の気温は15度です。
上着が必要です。