
C言語のif、else、else ifについて詳しく知りたいな…elseとelse ifの違いって何だろう?
こちらの悩みを解決していきます。
この記事を書いている自分は情報系大学生で、三ヶ月ほどでC言語の基礎を完璧に理解しました。勉強中に分からないことが多く、一日中プログラミングしていたこともあります。
本記事の内容
・if文とは?
・else ifとは?
・elseとは?
・if、else、else ifのサンプルコード
今では、ブログでC言語について解説しています。
今回はそんな経験をもとに解説していこうかと。
当サイトでは、覚えるべきところを全てまとめているので、画面を撮影して何度も読み返すことをおすすめします。
また、条件分岐を作ることができる関数はifだけではありません。
三項演算子とかも知っておくと便利ですよ。
知りたい方は下の記事を参考にしてください。
それでは、if文について解説していきます!
if文とは?

if文とは、if関数を使って作成される条件分岐のことです。
フローチャートで表現するとこんな感じですね。

条件に当てはまったら、命令を実行するという感じです。逆に、当てはまらなかったら、命令を実行しません。
if文は下のようにif( )と「{ }」の全体を表します。
if()
{
//ここに命令文(実行するプログラム)
}
()の中には条件式が入りますね。条件式については下の記事で紹介しています。
C言語でのif文の詳しい使い方
if文は日本語に直すなら
もし~だったら〇〇しろ!!
といった感じです。
例えば、
if(〇>△)
{
~
}
のようなプログラムは
〇>△だったら~しろ
と日本語に直すことができます。
つまり、カッコの中に条件式を書き、その条件式に当てはまっていれば波カッコの中を実行します。
逆に、条件に当てはまらなかったときは「if文」全体を無視することができます。
また、「if文の条件に合わなかったら」という条件を「if文」の直後に追加することもできます。
それが、else ifですね。
else ifとは?

else ifとは、else if関数を使って作成される条件分岐のことです。
else ifは前にあるif文もしくはelse ifで条件に合わず、else if関数内の条件に一致した場合に実行されます。
else if関数は、「else if( )」で表します。「if文」と違って、「else if文」のようには言う人は少ないです。
下の画像はelse ifを表したフローチャートです。

「条件1」と「条件2」に当てはまらず、「条件3」のみに当てはまったら、「命令3」を実行するという感じですね。
もちろん、「条件3」に当てはまらなかったら何も実行されません。
else ifは下のようにelse if( )と「{ }」の全体を表します。
else if()
{
}
elseの上にはもちろん、if文もしくは別のelse ifがあります。そうでないと、else ifは使用できません。else ifの使用できる位置は覚えておきましょう。
C言語でのelse ifの詳しい使い方
if文は日本語に直すなら
もし前のif文やelse ifの条件に合わず、~だったら〇〇しろ!!
といった感じです。
else if(〇<×)
{
~
}
上のプログラムは
もし前のif文やelse ifの条件に合わず、〇<×だったら~しろ!!
と日本語に直すことができます。
else ifは、if文の後だったら何回でも使用することができます。
C言語のelseとは?

elseとは、else関数を使って作成される条件分岐のことです。
elseを使うことで、
全ての条件に合わなかったら
という条件を追加することができます。
elseを使うことで、「if、else ifに合わなかった条件」を必ず実行することができます。なので、条件式を使う必要はありません。
else関数は「else ( )」で表します。else ifと同様、「else文」のようには言う人は少ないです。
下の画像はelseを表したフローチャートです。

もし「条件1」と「条件2」に当てはまらなかったら、必ず「命令3」を実行できます。
そのため、「条件3」は存在しません。
elseは下のようにelse( )と「{ }」の全体を表します。
else()
{
}
前のif文、else ifの条件が全て当てはまらなかったら、必ず実行されることを覚えておきましょう。
C言語でのelseの詳しい使い方
else
{
~
}
日本語に直すと、「前のif文、else ifの条件に合わなかったら、必ず~を実行しろ」です。
もちろん、プログラムで「else」を使わずに「if」と「else if」だけを使用することもできます。
C言語でif文、else if、elseを使用したプログラムの解説
さっそく練習してみましょう。変数に代入された数字が、3より大きいか小さいか判別するプログラムです。
「if」、「else if」、「else」の全てを使ってプログラムをつくります。
#include<stdio.h>
int main()
{
int a;
a = 1;
if (a > 3)
{
printf("3より大きい");
}
else if (a < 3)
{
printf("3より小さい");
}
else
{
printf("a=3");
}
}
4,5,6,…のように3より大きな数字は、「3より大きい」と出力されます。
逆に、0,1,2のように3より小さな数字は、「3より小さい」と出力されますね。
最後に、前の2つの条件に合わなかった場合(a=3)は、「a=3」と出力されます。
もちろん、elseの部分をelse ifに変更して、elseを一度も使わないプログラムにすることもできますよ。

1を代入したので「3より小さい」と出力されました。
C言語におけるelseとelse ifの違い

この疑問を持った方は多いかと思います。
なので、表にしてまとめてみますね。
else if | else | |
---|---|---|
使用回数 | 制限なし | 1回まで |
実行する条件 | 条件に当てはまったら | 前の条件に当てはまらなかったら |
条件式 | 必要 | 不要 |
使用できる場所 | if文もしくはelse ifの後 elseより前 | 一番最後 |
elseはelse ifと違って、前の条件が全て当てはまらなければ必ず実行できますが、一度しか使用できません。
どちらを使えば良いか分からないという疑問を持った方は、以下の例を参考にしてください。
先ほどのプログラムをもう一度見てみましょう。
#include<stdio.h>
int main()
{
int a;
a = 1;
if (a > 3)
{
printf("3より大きい");
}
else if (a < 3)
{
printf("3より小さい");
}
else
{
printf("a=3");
}
}
この場合、もし変数に文字が代入されていたらどうなると思いますか?
もちろん、文字には大きさという概念がないため、前のif文とelse ifの条件からは除外されます。(基本的に大きさという概念は無いですが、例外としてASCIIコードというものがあります)
したがって、a=3と出力されてしまうのです。
このようなバグを防ぐためにはelseではなく、else ifで厳密に条件を指定する必要があるのです。
#include<stdio.h>
int main()
{
int a;
a = 1;
if (a > 3)
{
printf("3より大きい");
}
else if (a < 3)
{
printf("3より小さい");
}
else if (a==3)
{
printf("a=3");
}
else()
{
printf("数字を代入してください。");
}
}
従って、このようなプログラムが本来なら正しいのです。
この場合、文字を代入したら、a=3と出力されませんし、elseを使用してその他の場合という条件を正しく設定できているのです。
まとめ

if文やwhile文、for文などをうまく使いこなせば、作成できるプログラムの量が格段に増えます。自分でもプログラムをつくってみましょう。
今回は以上です!
次は、関係演算子、論理演算子を勉強しましょう。
ではでは~👋
コメント