データを処理する場合には、ある条件を満足する場合の処理と、そうでないとき の処理を分けることがよくあります。 例えば、男性の場合と女性の場合や、20才以上の人と20才未満の人の場合など、 そのような状況は多々見掛けます。プログラミングで条件ごとに処理を 分けるには、ここで学習するif文を使います。
if文の基本構造は以下の通りです。
if (条件式) { 条件式が満足されるときに実行される命令 (命令は複数行あっても可能) }
条件が満足されることを真になる、その逆に満足されないときに は偽になるともいいますので、その表現も覚えましょう。 「真になる」場合には1が、「偽になる」場合には0が返されるということも大事 な点ですので覚えておきましょう。
下記には、数値を用いた条件式で良く使われる条件式を列挙しました。
演算子 | 使い方 | 意味 |
---|---|---|
== | a == b | aとbの値が等しければ1、そうでなければ(等しくない場合)0 |
!= | a != b | aとbの値が等しくなければ1、そうでなければ(等しい場合)0 |
< | a < b | aがbより小さければ1、そうでなければ(等しいまたは大きい場合)0 |
> | a > b | aがbより大きければ1、そうでなければ(等しいまたは小さい場合)0 |
<= | a < b | aがb以下であれば1、そうでなければ(大きい場合)0 |
>= | a >= b | aがb以上であれば1、そうでなければ(小さい場合)0 |
if文の例
if (a > b) { printf("aはbより大きい\n"); }
if (a < b) { printf("aはbより小さい\n"); }
if (a == b) { printf("aはbと等しい\n"); }
if (a != b) { printf("aはbと等しくない\n"); }
if文の基本構造に対して、「ある条件が満たされる時の処理」以外に、 「満たされない時の処理」も指定するには以下のように記述します。
if (条件式) { 条件式が満足されるときに実行される命令 (命令は複数行あっても可能) } else { 条件式が満足されないときに実行される命令 (命令は複数行あっても可能) }
この考えを拡張して、「ある条件A」以外に、「ある条件Aが満たされない時の 別の条件B」が満たされるときの処理も指定することができます。
if (条件式A) { 条件式Aが満足されるときに実行される命令 } else if (条件式B) { 条件式Aが満足されず、条件式Bが満足されるときに実行される命令 } else { 条件式AもBも満足されないときに実行される命令 }
例えば、年齢を表す変数ageがあり、それに対して、
条件式 | 意味 |
---|---|
A | 年齢が60才以上 |
B | 年齢が20才以上60才未満 |
それ以外 | 年齢が20才未満 |
という条件ごとに処理を変えたい場合には、下記のように書きます。
if (age >= 60) { 年齢が60才以上のときに実行される命令 } else if (age >= 20) { 年齢が60才未満で20才以上のときに実行される命令 } else { 年齢が20才未満のときに実行される命令 }
if (条件式A && 条件式B) { 条件式AもBも満足されるときに実行される命令 }
if (条件式A || 条件式B) { 条件式AかBか、どちらかが満足されるときに実行される命令 }
例えば、年齢を表す変数ageと、性別を表す変数sex(男なら1、女なら2)を用い た条件式を考えると、次のような例が表現可能です。
if (age >= 60 && sex == 1) { 年齢が60才以上で、かつ性別が1(男)の時に実行 }
if (age >= 60 || sex == 1) { 年齢が60才以上か、または性別が1(男)の時に実行 (年齢が60才以上の女性も、また60才未満の男性もあてはまる) }