この記事では、C言語でif文を使う方法を解説します。if文とは制御構文の1つで、条件式によって処理を分岐させることができます。
- if文の基本的な使い方
- 比較演算子について
- 論理演算子について
それでは、if文の使い方を見ていきましょう!
if文の基本的な使い方

書式
if文は以下のように記述します。
if(条件式){
条件式が真の時に処理されるブロック
}
以下のように1行で記述することもできます。
if(条件式) 条件式が真の時に処理される行
サンプル
val変数の値が「0」ならばif文後のprintf関数が処理されます。
#include <stdio.h>
int main()
{
int val = 0;
// == で値が等しいか判定
if(val == 0) printf("0です\n");
}
実行結果
0です
比較演算子を使った条件式

比較演算子を使うことで様々な条件を指定することができます。
演算子 | 意味 |
---|---|
x == y | x と y が等しいかどうか |
x != y | x と y が等しくないかどうか |
x < y | x が y より小さいかどうか |
x > y | x が y より大きいかどうか |
x <= y | x が y 以下かどうか |
x >= y | x が y 以上かどうか |
これらの条件式を使った例も見てみましょう!値を変更して挙動を確認することでより理解が深まります。
等しくない:x !=y
xが「0」と等しくなければif文後のprintf関数が処理されます。
#include <stdio.h>
int main()
{
int x = 1;
if(x != 0) printf("xは0以外です\n");
}
実行結果
xは0以外です
小なり:x < y
xが「0」よりも小さければif文後のprintf関数が処理されます。
#include stdio.h
int main()
{
int x = -1;
if(x < 0) printf("xは0より小さいです\n");
}
実行結果
xは0より小さいです
大なりイコール:x >= y
xが「0」以上であればif文後のprintf関数が処理されます。
#include <stdio.h>
int main()
{
int x = 0;
if(x >= 0) printf("xは0以上です\n");
}
実行結果
xは0以上です
条件式が返す真偽値
条件式は処理されると真偽値を返します。
試しに条件式が返している値を確認してみましょう!
#include <stdio.h>
int main()
{
int x = 0;
printf("真: %d\n", x == 0);
printf("偽: %d\n", x != 0);
}
実行結果
真: 1
偽: 0
真では1、偽では0が返されました。
条件式にいろんな値を指定する
if文の条件式に色々な値を指定して挙動を見てみましょう。
0とそれ以外の値
int型の0と1を指定してみます。
#include <stdio.h>
int main()
{
int zero = 0;
int one = 1;
if(zero)printf("zero\n");
if(one)printf("one\n");
}
実行結果
one
int型以外の型でも同様の結果になります。
#include <stdio.h>
int main()
{
float zero = 0.0;
float one = 1.0;
if(zero)printf("zero\n");
if(one)printf("one\n");
}
実行結果
one
NULL
NULLを指定してみます。
#include <stdio.h>
int main()
{
if(NULL)printf("NULL\n");
}
実行結果
なにも出力されなかったので、偽だったことがわかります。
bool値
stdbool.hでbool値を使ってみます。
#include <stdio.h>
#include <stdbool.h>
int main()
{
if(true)printf("true\n");
if(false)printf("false\n");
}
実行結果
true
条件式が偽だった場合の処理:else

elseを定義することで、条件式が偽のときの処理を追加することができます。
書式
elseは、以下のように記述します。
if(条件式){
条件式が真の時に処理されるブロック
} else {
条件式が偽の時に処理されるブロック
}
サンプル
以下のコードでは、奇遇を判定しています。
#include <stdio.h>
int main()
{
int num = 1;
// numを2で割った余りを0と同等か比較しています
if(num % 2 == 0){
printf("numは偶数\n");
} else {
printf("numは奇数\n");
}
}
実行結果
numは奇数
新たな条件の追加:else if

else ifを使うことで、新たな条件をいくつでも追加することができます。
書式
else ifは、以下のように記述します。
if(条件式1){
条件式1が真の時に処理されるブロック
} else if(条件式2){
条件式1が偽、条件式2が真の時に処理されるブロック
} else {
条件式1,2がどちらも偽の場合に処理されるブロック
}
サンプル
以下のコードは、年齢に適した年代を出力します。else ifを定義して細かく条件を分けました。age変数の値を変えてみて挙動を確かめてみてください。
#include <stdio.h>
int main()
{
unsigned int age = 100;
if(age < 20){
printf("%d歳は少年\n", age);
} else if(age < 40) {
printf("%d歳は青年\n", age);
} else if(age < 60) {
printf("%d歳は壮年\n", age);
} else if(age < 100) {
printf("%d歳は老年\n", age);
} else {
printf("%d歳は御長寿\n", age);
}
}
実行結果
100歳は御長寿
複数の条件をつなぐ:論理演算子

論理演算子で複数の条件式をつないで定義することができます。
演算子 | 意味 |
---|---|
条件式1 && 条件式2 | 条件式1 かつ 条件式2が真ならば真 |
条件式1 || 条件式2 | 条件式1 または 条件式2が真ならば真 |
論理演算子を使った例を見てみましょう!
AND:&&
繋いだどちらの条件も真でなければ真として判定されません。条件の幅を狭めたい場合に使います。以下の例では、20歳以上の男性のみが真として判定されます。
#include <stdio.h>
int main()
{
int age = 35;
char gender = 0; // 男性: 0、女性: 1
if((age >= 20) && (gender == 0)){
printf("20歳以上の男性です\n");
}
}
実行結果
20歳以上の男性です
OR:||
繋いだどちらかの条件が真ならば真として判定されます。条件の幅を広めたい場合に使います。以下の例では、20歳以上または男性ならば真として判定されます。
#include <stdio.h>
int main()
{
int age = 35;
char gender = 1; // 男性: 0、女性: 1
if((age >= 20) || (gender == 0)){
printf("20歳以上または男性\n");
}
}
実行結果
20歳以上または男性
まとめ
この記事では、C言語のif文の使い方を解説しました。
- if文 = 『if(条件式) 真の時に処理される命令文』
- 条件の追加 = 『else if(条件式)』
- 偽の時の処理 = 『else』
C言語に関わらず、どのプログラミング言語でもif文は重要な構文です。他の言語でも使い方は通ずるところがあるのでしっかりと覚えておきましょう。
それでは今回の内容はここまでです。ではまたどこかで〜( ・∀・)ノ