【C言語】条件分岐の基本【if文, 条件分岐, else, else if】
C言語のif文を詳しく解説
目次
if文の基本構造
if文は、ある条件を満たした場合にのみ特定の処理を実行するための構文です。
#include <stdio.h>
int main() {
int x = 10;
if (x > 5) {
printf("xは5より大きいです。\n");
}
return 0;
}
if-else文
if文の条件が偽(false)の場合に、別の処理を行う場合はelse
を使います。
#include <stdio.h>
int main() {
int x = 3;
if (x > 5) {
printf("xは5より大きいです。\n");
} else {
printf("xは5以下です。\n");
}
return 0;
}
if-else if文
複数の条件を判定する場合は、else if
を使います。
#include <stdio.h>
int main() {
int x = 7;
if (x > 10) {
printf("xは10より大きいです。\n");
} else if (x > 5) {
printf("xは5より大きいですが、10以下です。\n");
} else {
printf("xは5以下です。\n");
}
return 0;
}
比較演算子
if文でよく使う比較演算子は以下の通りです。
==
: 等しい!=
: 等しくない>
: より大きい<
: より小さい>=
: 以上<=
: 以下
int a = 5, b = 10;
if (a != b) {
printf("aとbは異なります。\n");
}
論理演算子
複数の条件を組み合わせる場合に論理演算子を使います。
&&
: AND(両方の条件が真なら真)||
: OR(どちらかの条件が真なら真)!
: NOT(条件を反転)
int x = 8;
if (x > 5 && x < 10) {
printf("xは5より大きく10より小さいです。\n");
}
入れ子のif文(ネスト)
if文の中にif文を入れることもできます。
int x = 8;
if (x > 5) {
if (x < 10) {
printf("xは5より大きく10未満です。\n");
}
}
三項演算子
if-elseの簡略形として三項演算子?:
が使えます。
int x = 7;
printf("%s\n", (x > 5) ? "5より大きい" : "5以下");
よくあるミス
以下は、C言語のif文でよくある間違いです。
比較演算子と代入演算子の混同
int x = 5;
if (x = 10) { // 誤り: xに10を代入してしまう
printf("xは10です。\n");
}
修正:
if (x == 10) { // 正しい比較演算子
printf("xは10です。\n");
}
ブロックの省略による誤動作
if (x > 5)
printf("xは5より大きいです。\n");
printf("この行は条件に関係なく実行される!\n"); // 意図しない動作
修正:
if (x > 5) {
printf("xは5より大きいです。\n");
printf("この行も条件を満たす場合のみ実行。\n");
}