if文と真偽値

 前回は、条件によって処理を分けるという概念について解説しました。今回は、C言語でどのように条件分岐の処理を書いていくかについて触れたいと思います。

 基本的には、条件分岐は、以下のようなプログラムを書いていきます。

#include <stdio.h>

int main(int argc, const char * argv[])
{
    
    // insert code here...
    printf("最初の処理\n");
    
    if(/* 分岐する条件 */) {
        // 分岐する条件を満たしたときに行う処理を書く
        printf("条件を満たしたときの処理\n");
    } else {
        // 分岐する条件を満たさなかったときに行う処理を書く
        printf("条件を満たさなかったときの処理\n");
    }
    
    printf("最後の処理\n");
    
    return 0;
}

 ifの隣の括弧の中に、分岐のための条件(例えば、「合計金額が1500円未満」という条件)を書き込みます。その条件を満たせば、すぐ下の{}内の処理が実行されます。条件を満たさなかったら、elseの下の{}内にある処理が実行されます。このとき、 if{} の中の処理と else{} の中の処理が同時に実行されることはありません。

 上記のプログラムの例で言えば、まず最初に「最初の処理」が表示されます。その後、ifの隣の括弧に書いてある条件を満たせば「条件を満たしたときの処理」が、条件を満たさなかったら「条件を満たさなかったときの処理」が表示されます(両方とも表示されることはありません)。そして最後に「最後の処理」が表示されます。

 ちなみに、条件を満たさなかった場合に処理が要らないなら、 else{} 以下を省略して

    printf("最初の処理\n");
    
    if(/* 分岐する条件 */) {
        // 分岐する条件を満たしたときに行う処理を書く
        
    }
    
    printf("最後の処理\n");

 と書くことが出来ます。また、ある条件は満たさないが別の条件を満たすときは、

    printf("最初の処理\n");
    
    if(/* 条件A */) {
        // 条件Aを満たしたときに行う処理を書く
        
    } else if (/* 条件B */) {
        // Aは満たさないがBを満たしたときに行う処理を書く
        
    } else {
        // AもBも満たさないときに行う処理を書く
        
    }
    
    printf("最後の処理\n");

 このように else if() {} というものを使うことが出来ます。

 さて、()の中の条件が「満たす」「満たさない」は、どのような処理構造になっているのでしょうか。試しに、以下のプログラムを実行してみて下さい。

#include <stdio.h>

int main(int argc, const char * argv[])
{
    
    // insert code here...
    printf("最初の処理\n");
    
    if(1) {
        // 分岐する条件を満たしたときに行う処理を書く
        printf("条件を満たしたときの処理\n");
    } else {
        // 分岐する条件を満たさなかったときに行う処理を書く
        printf("条件を満たさなかったときの処理\n");
        
    }
    
    printf("最後の処理\n");
    
    return 0;
}

 「条件を満たしたときの処理」が表示されます。では、if(1)ではなく、if(0)と変えて実行してみて下さい。「条件を満たさなかったときの処理」が表示されるかと思います。つまり、

  • 条件を満たしたとき : ()の中が1(厳密に言えば0以外)
  • 条件を満たさなかったとき : ()の中が0

 と言えます。これを真偽値と言います。真が1(厳密に言えば0以外)で偽が0です。

 では、どのようにして()の中に「合計が1500円未満かどうか」という条件を書くかについては、次回以降にお伝えします。

■スポンサーリンク

このページの先頭へ