第20回目のC言語超入門のテーマは「if文を使った分岐処理」です。
分岐処理はプログラミングの「肝」になる処理の一つですから、気を引き締めて学んでいきましょう。

if文は2方向の分岐処理を行う

if文を使いますと、特定の条件のときに2方向に処理を分岐させて、それぞれ異なる処理を実行することができます。
分岐処理の構成を日本語で表現しますと、
– もし速いならXXXXを行い、違うならYYYYを行う
– もし正しいならXXXXを行い、違うならYYYYを行う
– もし赤色ならXXXXを行い、違うならYYYYを行う
となりますが、イメージできましたでしょうか。
日本語で表現している「速いなら」「正しいなら」「赤色なら」は、すべて分岐をするための「条件」です。
if文では、分岐の条件は「条件式」で表現します。
日本語で表現した分岐処理を、if文を使って表現しますと、

- if (条件式) { XXXX; } else { YYYY; }

となります。
条件式が成立したときにXXXXの処理を実行し、条件が成立しなかったときはYYYYを実行することになります。

if文の記述方法

では、具体的にif文を使ったプログラム例を示して説明いたします。
プログラムの仕様は、
– 変数xの値が100なら「条件成立」の文字列を表示する
– 変数xの値が100以外なら「条件不成立」の文字を表示する
– 1回目のif文では、変数xの値を100にする
– 2回目のif文では、変数xの値を99にする
です。
■プログラム1

```
#include <stdio.h>
main() {
  int x;
  printf("1回目 ");
  x = 100;      // 変数xを100にする
  if (x==100) printf("x=%d   条件成立\n", x);   // 変数xが100なら「条件成立」を表示する
  else printf("x=%d    条件不成立", x);         // 変数xが100以外なら「条件不成立」を表示する
  printf("2回目 ");
  x = 99;       // 変数xを99(100以外)にする
  if (x==100) printf("x=%d   条件成立\n", x);   // 変数xが100なら「条件成立」を表示する
  else printf("x=%d    条件不成立", x);         // 変数xが100以外なら「条件不成立」を表示する
}
```

 
■プログラム1の実行結果
1回目 x=100 条件成立
2回目 x=99 条件不成立

if文の省略形

if文の標準スタイルは

- if (条件式) { XXXX; } else { YYYY; }

ですが、if文の記述は一部省略することができますので紹介します。

条件式の記述を省略する

C言語では条件式を、if (x) のように省略して記述することができます。
このとき変数xが「0でないとき」に条件が成立し、「0のとき」に条件が不成立になります。
C言語に慣れていませんと、変数xがどの状態のときに成立なのか不成立なのか混乱するかもしれませんね。
もし混乱してしまうようなら、変数xの値に何か値が入っているときは成立、何も無い(0のとき)ときは不成立、と考えてみることで、少し理解が進むかもしれません。

else(〜でないとき)の記述を省略する

条件が不成立のときの処理は else {・・・・・・} で記述しましたが、条件不成立時に特段の処理を必要としなければ、省略することができます。
elseを使用しないif文の形式は次のようになります。

- if (条件式) { XXXX; }

if文を使って多分岐を行う場合の記述方法

冒頭で、if文は2方向に処理を分岐させると言いましたが、「else if文」を使用して、多分岐をさせることができます。
else if文の使い方は次のとおりです。

- if (条件式1) { XXXX; } else if (条件式1) { YYYY; } else { ZZZZ; }

上記のif文、else if文では、
– 条件式1が成立したとき XXXX を実行
– 条件式1と条件式2が成立したとき YYYY を実行
– 条件式1も条件式2も不成立のとき ZZZZ を実行
します。
else if文を使いますと、いくらでも分岐を増やすことができます。

C言語超入門の第20回まとめ

さて、今回のC言語超入門では、if文を使って、特定の条件が成立・不成立のときに別々の処理を実行させる「分岐処理」について学びました。
次回のC言語超入門からは、繰り返し処理について学んでいきます。
今回の分岐処理と繰り返し処理を使いこなすことができますと、大抵のプログラミングが可能になりますよ。
ステップ・バイ・ステップ。焦らず一歩ずつ進んでいきましょう