基本事項:条件式 - if -

条件式の基本

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

須ア純一 京都大学大学院 工学研究科社会基盤工学専攻 空間情報学講座
[C言語 演習問題トップページ] [須ア純一ホームページ]