データを処理する場合には、ある条件を満足する場合の処理と、そうでないとき の処理を分けることがよくあります。 例えば、男性の場合と女性の場合や、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才未満の男性もあてはまる)
}