C言語 入門 if、elseについて0から解説する

ifを使った条件分岐C Language
<strong>C言語でifを勉強したい人</strong>
C言語でifを勉強したい人

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を表したフローチャートです。

elseのフローチャート

「条件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を表したフローチャートです。

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を一度も使わないプログラムにすることもできますよ。

C言語if文で書かれた出力結果

1を代入したので「3より小さい」と出力されました。

C言語におけるelseとelse ifの違い

where,when,whatの書かれた泡

この疑問を持った方は多いかと思います。

なので、表にしてまとめてみますね。

else ifelse
使用回数制限なし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文などをうまく使いこなせば、作成できるプログラムの量が格段に増えます。自分でもプログラムをつくってみましょう。

今回は以上です!

次は、関係演算子、論理演算子を勉強しましょう。

ではでは~👋