プログラムにおいて、特定の条件に基づいて異なる処理を実行するために条件分岐が使用されます。C言語では、if、else if、およびelse文を使用して条件分岐を実装できます。ここでは、if...else文について詳しく説明し、具体例を交えて紹介します。
基本的なif文
if文は、指定された条件が真(true)の場合にブロック内のコードを実行します。
#include <stdio.h>
int main() {
int number = 10;
if (number > 5) {
printf("numberは5より大きいです。\n");
}
return 0;
}
出力:
numberは5より大きいです。
if…else文
if文の条件が偽(false)の場合に別のコードブロックを実行するためにelse文を使用します。
#include <stdio.h>
int main() {
int number = 3;
if (number > 5) {
printf("numberは5より大きいです。\n");
} else {
printf("numberは5以下です。\n");
}
return 0;
}
出力:
numberは5以下です。
if…else if…else文
複数の条件をチェックするためにelse if文を使用します。else if文は、if文の条件が偽であり、else if文の条件が真である場合に実行されます。
#include <stdio.h>
int main() {
int number = 7;
if (number > 10) {
printf("numberは10より大きいです。\n");
} else if (number > 5) {
printf("numberは5より大きく、10以下です。\n");
} else {
printf("numberは5以下です。\n");
}
return 0;
}
出力:
numberは5より大きく、10以下です。
ネストされたif文
条件内にさらに条件をチェックするために、if文をネスト(入れ子)にすることができます。
#include <stdio.h>
int main() {
int number = 8;
if (number > 0) {
if (number % 2 == 0) {
printf("numberは正の偶数です。\n");
} else {
printf("numberは正の奇数です。\n");
}
} else {
printf("numberは負の数です。\n");
}
return 0;
}
出力:
numberは正の偶数です。
複数の条件を組み合わせる
&&(AND)および||(OR)演算子を使用して、複数の条件を組み合わせてチェックできます。
AND条件
すべての条件が真である場合にのみコードを実行します。
#include <stdio.h>
int main() {
int age = 20;
int height = 170;
if (age >= 18 && height >= 160) {
printf("成人かつ身長が160cm以上です。\n");
} else {
printf("条件を満たしていません。\n");
}
return 0;
}
出力:
成人かつ身長が160cm以上です。
OR条件
いずれかの条件が真である場合にコードを実行します。
#include <stdio.h>
int main() {
int age = 16;
int height = 170;
if (age >= 18 || height >= 160) {
printf("成人または身長が160cm以上です。\n");
} else {
printf("どちらの条件も満たしていません。\n");
}
return 0;
}
出力:
成人または身長が160cm以上です。
総合例
以下に、ここまで紹介した条件分岐の知識を統合したプログラムを示します。このプログラムでは、if、else if、else文および論理演算子を使用します。
#include <stdio.h>
#include <stdbool.h>
int main() {
int age;
bool hasLicense;
printf("年齢を入力してください: ");
scanf("%d", &age);
printf("運転免許証を持っていますか?(1: はい, 0: いいえ): ");
scanf("%d", &hasLicense);
if (age >= 18) {
if (hasLicense) {
printf("あなたは運転できます。\n");
} else {
printf("免許証を取得してください。\n");
}
} else {
printf("あなたは未成年です。\n");
}
return 0;
}
結論
条件分岐は、プログラムの流れを制御するための基本的な構造です。C言語のif...else文を使用することで、さまざまな条件に応じて異なる処理を実行することができます。これらの知識を活用して、柔軟で強力なプログラムを作成しましょう。
