本記事の構成および論理分析にはAI(人工知能)を使用しています。情報の正確性は、システム管理者(UNIXユーザー)による手動検証済みです。
第5回|C言語のif文と条件分岐を学ぶ:条件によって処理を変える

はじめてのC言語 | 第5回
はじめに
前回は、C言語で整数の計算を行う方法を確認しました。
今回は、条件によって処理を分ける if 文を学びます。
この回の目的は次の4点です。
- if 文の基本形を理解する
- 比較演算子の意味を覚える
- if と else の使い方を知る
- 条件式が真か偽かで処理が変わることを確認する
条件分岐とは何か
条件分岐とは、「ある条件が成り立つかどうか」で実行する処理を変えることです。
たとえば、次のような場面で使います。
- 点数が60点以上なら合格と表示する
- 年齢が20以上なら成人と表示する
- 値が0なら特別な処理を行う
C言語では、この処理を if 文で書きます。
if 文の基本形
最小の形
if (条件式) {
実行する処理;
}意味は次のとおりです。
- 条件式 が真なら、波かっこの中を実行する
- 偽なら、波かっこの中は実行しない
最初のサンプルコード
ソースコード
if_sample.c という名前で保存します。
#include <stdio.h>
int main(void) {
int score = 75;
if (score >= 60) {
printf("pass\n");
}
return 0;
}実行手順
1. 作業ディレクトリに移動する
cd ~/Desktop2. コンパイルする
clang if_sample.c -o if_sample3. 実行する
./if_sample実行結果:
passコードの読み方
int score = 75;
整数型の変数 score に 75 を代入しています。
if (score >= 60)
score が 60 以上なら条件は真です。
この場合、75 >= 60 なので真になります。
printf(“pass\n”);
条件が真なので、この行が実行されます。
比較演算子
if 文では、比較演算子を使って条件式を書きます。
- == : 等しい
- != : 等しくない
- > : より大きい
- < : より小さい
- >= : 以上
- <= : 以下
よく使う例
等しいかを調べる
if (x == 10) {
printf("x is 10\n");
}等しくないかを調べる
if (x != 0) {
printf("x is not 0\n");
}以上かを調べる
if (score >= 60) {
printf("pass\n");
}if と else
条件が真のときだけでなく、偽のときの処理も書きたい場合は else を使います。
サンプルコード
#include <stdio.h>
int main(void) {
int score = 45;
if (score >= 60) {
printf("pass\n");
} else {
printf("fail\n");
}
return 0;
}実行結果:
fail意味は次のとおりです。
- score >= 60 が真なら pass
- そうでなければ fail
if と else if
条件を2つ以上に分けたい場合は else if を使います。
サンプルコード
#include <stdio.h>
int main(void) {
int score = 75;
if (score >= 80) {
printf("A\n");
} else if (score >= 60) {
printf("B\n");
} else {
printf("C\n");
}
return 0;
}実行結果:
Bこのコードは上から順に判定されます。
- score >= 80 は偽
- score >= 60 は真
- したがって B を表示する
条件式は真か偽で決まる
C言語の if 文は、条件式を評価した結果が真なら実行し、偽なら実行しません。
この段階では、比較演算子を使った式が真か偽になると理解すれば十分です。
初心者がつまずきやすい点
= と == を混同しない
これは非常に重要です。
- = : 代入
- == : 比較
正しい例:
if (score == 100) {
printf("perfect\n");
}誤りの例:
if (score = 100) {
printf("perfect\n");
}score = 100 は比較ではなく代入です。
意図しない動作の原因になるため、必ず == を使います。
条件式は丸かっこで囲む
if の後には丸かっこが必要です。
正しい例:
if (score >= 60) {
printf("pass\n");
}波かっこを省略しない方がよい
1行だけなら波かっこを省略できる場合もありますが、初学者は必ず書く方が安全です。
if (score >= 60) {
printf("pass\n");
}この形に統一すると、読みやすくなり、ミスを減らせます。
よくあるエラー
expected expression
原因: if の条件式が正しく書かれていません。
誤った例:
if () {
printf("test\n");
}対処: 丸かっこの中に条件式を書く必要があります。
expected ‘;’
printf などの文の末尾に ; が必要です。
printf("pass\n")比較演算子の書き間違い
=> や =< ではありません。
正しくは次のどちらかです。
- >=
- <=
練習用コード
次のコードを書いて実行してください。
#include <stdio.h>
int main(void) {
int age = 18;
if (age >= 20) {
printf("adult\n");
} else {
printf("minor\n");
}
return 0;
}実行結果:
minorage を 20 や 25 に変えて結果の違いを確認すると理解しやすくなります。
まとめ
今回のポイントは次のとおりです。
- if 文を使うと条件によって処理を変えられる
- 比較演算子で条件式を書く
- else を使うと、条件が偽のときの処理も書ける
- else if を使うと、条件を複数に分けて判定できる
- = と == は意味がまったく異なる
この回では、C言語で条件分岐を行う if 文を確認しました。
変数、演算子、条件分岐がそろうと、プログラムらしい処理を書けるようになります。
次回予告
次回は、for 文を使った繰り返し処理に進みます。
同じ処理をまとめて実行する考え方を、条件分岐の理解とつなげながら、やさしく見ていきましょう。
復習してみよう
復習したい方は、こちらもあわせてご覧ください。













