【初心者用】はじめてのC言語3
公開日: 2024/7/24
更新日: 2024/6/26
前回の【初心者用】はじめてのC言語2では、四則演算と条件分岐式if文、if文に使用する演算子について解説を行いました。
今回はif文の場合分け処理から解説していければと思います。
1. if~else文
前回までのif文では成立時の時のみ実行するコードの記載でしたが、if~else文を使用すれば不成立時にも実行するコードが書けるようになります。
実際どのような動きになるのか見てみましょう。
#include
int main(void)
{
int num1 = 10;
if(20 < num1)
{
printf("num1は20より大きい値です\n");
}
else
{
printf("num1は20より小さい値です\n");
}
printf("処理を終了します");
return 0;
}
実行結果
num1は20より小さい値です
処理を終了します
2. 3つ以上の場合分け処理について
上記の例では2つの場合分け処理を説明しました。
3つ以上の場合分け処理を書きたい場合はelse if文を使用します。
else if文は1つ前の処理が不成立の場合、else if文の条件式に当てはまるか判断し、当てはまれば処理を実行します。
else if文を繋げれば繋げた数だけ場合分け処理ができます。
実際どのような動きになるのか見てみましょう。
実行結果
num1は20より大きい値です
処理を終了します
上記のコードではif(30 < num1)は満たしていないがelse if(20 < num1)は満たしているので、2番目の処理が実行されます。
3つ以上の場合分け処理を書きたい場合はelse if文を使用します。
else if文は1つ前の処理が不成立の場合、else if文の条件式に当てはまるか判断し、当てはまれば処理を実行します。
else if文を繋げれば繋げた数だけ場合分け処理ができます。
実際どのような動きになるのか見てみましょう。
#include
int main(void)
{
int num1 = 25;
if(30 < num1)
{
printf("num1は30より大きい値です\n");
}
else if(20 < num1)
{
printf("num1は20より大きい値です\n");
}
else
{
printf("num1は20より小さい値です");
}
printf("処理を終了します");
return 0;
}
実行結果
num1は20より大きい値です
処理を終了します
上記のコードではif(30 < num1)は満たしていないがelse if(20 < num1)は満たしているので、2番目の処理が実行されます。
3. ネストについて
ネストとは別名入れ子ともいわれており、if文の中にif文を書いたりすることを言います。
実際に作業してみるとよく見かけるので、覚えていて損はないと思います。
自分がプログラミングする際にネストが深すぎると見ずらくなるので、出来ればネストは2つほどで押さえておくのが無難でよいかと思います。
実際どのような動きになるのか見てみましょう。
実行結果
num1は30より大きい値です
num1は40より大きい値です
処理を終了します
上記のコードではif(30 < num1)とif(40 < num1)が両方とも成立しているので、一番内側のif文まで処理が実行できている状態です。
実際に作業してみるとよく見かけるので、覚えていて損はないと思います。
自分がプログラミングする際にネストが深すぎると見ずらくなるので、出来ればネストは2つほどで押さえておくのが無難でよいかと思います。
実際どのような動きになるのか見てみましょう。
#include
int main(void)
{
int num1 = 45;
if(30 < num1)
{
printf("num1は30より大きい値です\n");
if(40 < num1)
{
printf("num1は40より大きい値です\n");
}
}
printf("処理を終了します");
return 0;
}
実行結果
num1は30より大きい値です
num1は40より大きい値です
処理を終了します
上記のコードではif(30 < num1)とif(40 < num1)が両方とも成立しているので、一番内側のif文まで処理が実行できている状態です。
4. switch~case文について
switch~case文は番号による場合分けをする場合に便利な条件分岐式です。
出席番号や製造番号などで場合分けする際に使用されます。
書式については下記になります。
実際どのような動きになるのか見てみましょう。
実行結果
num1は15,25,35のどれかの値です
処理を終了します
上記の処理では
case 15:
case 25:
case 35:
の条件を満たしていたので、結果は「num1は15,25,35のどれかの値です」になりました。
switch~case文で注意しなければならないところはbreak句を書き忘れないことです。
break句を書き忘れるとどうなるのか見てみましょう。
実行結果
num1は15,25,35のどれかの値です
num1は35の値です
処理を終了します
break句を書き忘れてしまうと、case 15、case 25、case 35の条件
出席番号や製造番号などで場合分けする際に使用されます。
書式については下記になります。
switch(条件式)
{
case 数値:
実行文;
break;
case 数値:
実行文;
break;
}
実際どのような動きになるのか見てみましょう。
#include
int main(void)
{
int num1 = 35;
switch(num1)
{
case 15:
case 25:
case 35:
printf("num1は15,25,35のどれかの値です\n");
break;
case 35:
printf("num1は35の値です\n");
break;
}
printf("処理を終了します");
return 0;
}
実行結果
num1は15,25,35のどれかの値です
処理を終了します
上記の処理では
case 15:
case 25:
case 35:
の条件を満たしていたので、結果は「num1は15,25,35のどれかの値です」になりました。
switch~case文で注意しなければならないところはbreak句を書き忘れないことです。
break句を書き忘れるとどうなるのか見てみましょう。
#include
int main(void)
{
int num1 = 35;
switch(num1)
{
case 15:
case 25:
case 35:
printf("num1は15,25,35のどれかの値です\n");
case 35:
printf("num1は35の値です\n");
break;
}
printf("処理を終了します");
return 0;
}
実行結果
num1は15,25,35のどれかの値です
num1は35の値です
処理を終了します
break句を書き忘れてしまうと、case 15、case 25、case 35の条件
5. 繰り返し文について
繰り返し処理についてはfor文を使用します。
for文もプログラミングでよく使用されるので、しっかり頭に入れましょう。
for文の書式は下記になります。
++というのは処理を行うたびにnumに1ずつ追加されていく処理です。
実際どのような動きになるのか見てみましょう。
実行結果
現在のnum1の値は0です
現在のnum1の値は1です
現在のnum1の値は2です
現在のnum1の値は3です
現在のnum1の値は4です
現在のnum1の値は5です
現在のnum1の値は6です
現在のnum1の値は7です
現在のnum1の値は8です
現在のnum1の値は9です
現在のnum1の値は10です
処理を終了します
上記のコードではnum1が10になるまで繰り返し実行されます。
for文もプログラミングでよく使用されるので、しっかり頭に入れましょう。
for文の書式は下記になります。
int num;
for(num = 0 ; num <= 10 ; num++)
{
繰り返し行う処理
}
++というのは処理を行うたびにnumに1ずつ追加されていく処理です。
実際どのような動きになるのか見てみましょう。
#include
int main(void)
{
int num1;
for(num1 = 0 ; num1 <= 10 ; num1++)
{
printf("現在のnum1の値は%dです\n",num1);
}
printf("処理を終了します");
return 0;
}
実行結果
現在のnum1の値は0です
現在のnum1の値は1です
現在のnum1の値は2です
現在のnum1の値は3です
現在のnum1の値は4です
現在のnum1の値は5です
現在のnum1の値は6です
現在のnum1の値は7です
現在のnum1の値は8です
現在のnum1の値は9です
現在のnum1の値は10です
処理を終了します
上記のコードではnum1が10になるまで繰り返し実行されます。
6. まとめ
今回は条件分岐の続きと繰り返し文について説明しました。
次回は繰り返し文の続きから説明できればと思います。