プログラミングのすすめ

プログラミングに関する情報サイト

~はじめてのC言語~ 簡単!比較演算について

まずは条件分岐について

比較演算子を調べてこのページに来ている方はもう御存知かと思いますが、念のためまずは条件分岐について簡単に説明しますね!

C言語における条件分岐とは、

ある条件によって違うことをやりたい場合

などに便利です。


例えば、引数として渡された値が"10"以上ならこの処理を、それ以外は違う処理をする。のような場合に使うことができます。

実際にサンプルコードと一緒に見ていきましょう。

int main()
{
    int number = 14;
    TestMethode(number);

    return 0;
}

void TestMethode(int number)
{
    if (number >= 10)
    {
        // もし"number"が"10"以上ならここのコードが実行されます。
        printf("引数の値は10以上です。");
    }
    else
    {
        // 上記"if"の条件以外ならここのコードが実行されます。
        printf("引数の値は10以上ではありません。");
    }
}

このように、"if, else"構文を使って条件により処理を分岐することができます。
if文の括弧の中()には条件を書きます。
上記のサンプルコードで言うと「numberが"10"以上なら」という条件で分岐しています。
else文は"if"文に該当しない条件の時。つまり「それ以外」の時に{}内が実行されます。

このように条件によって実行する処理を分岐できるので、コードの節約ができて便利ですよね♪

 

でも、">="こんな見たことないものが出てきました。

それが、比較演算というものです。
一緒に見ていきましょう!

 

比較演算とは

先ほど解説したように、
ある条件によって分岐を分けていた際に使用していた、「>=」のことを指します。
比較の仕方は他にもいろいろあるので順番に紹介していきます。

"==" 左側の値と右側の値が等しい

この演算子は2つの比較する値が一致しているかどうかを判定することができます。

int main()
{
    int number = 15;
    TestMethode(number);

    return 0;
}

void TestMethode(int number)
{
    int orgNumber = 15;
    if (number == orgNumber)
    {
        // もし"number"が"orgNumber"と等しい場合、このコードが実行されます。
        printf("引数の値はorgNumberの値と等しいです。");
    }
    else
    {
        // 上記"if"の条件以外ならここのコードが実行されます。
        printf("引数の値はorgNumberの値と等しくありません。");
    }
}

このように、引数として渡された値の”number”は”orgNumber ”と等しいかどうか評価します。
サンプルコードの条件であれば、
”number”は”orgNumber ”と等しければif構文の処理が実行されます。

"!=" 左側の値と右側の値が等しくない

この演算子も先ほどの"=="と似ているのですが、” ! ”をつけることで否定の意味になります。
つまり、「等しくなければ」という意味になります。

int main()
{
    int number = 15;
    TestMethode(number);

    return 0;
}

void TestMethode(int number)
{
    int orgNumber = 15;
    if (number != orgNumber)
    {
        // もし"number"が"orgNumber"と等しくない場合、このコードが実行されます。
        printf("引数の値はorgNumberの値と等しくありません。");
    }
    else
    {
        // 上記"if"の条件以外ならここのコードが実行されます。
        printf("引数の値はorgNumberの値と等しいです。");
    }
}

上記サンプルコードでは、引数として渡された「”number”の値がorgNumberと等しくなければ」という条件が組まれています。

ですので、この場合引数の”number”には"15"が入っており、"orgNumber"の値も"15"なのでif文は成立せずに、else構文の{}内の処理が実行されることになります。

">" 左側の値が右側の値よりも大きい

この演算子の「左側の値が、右側の値よりも大きい場合に処理をする。」ということを示しています。

int main()
{
    int number = 15;
    TestMethode(number);

    return 0;
}

void TestMethode(int number)
{
    int orgNumber = 20;
    if (number > orgNumber)
    {
        // もし"number"が"orgNumber"よりも大きい数値の場合、このコードが実行されます。
        printf("引数の値"number"はorgNumberよりも大きい数値です。");
    }
    else
    {
        // 上記"if"の条件以外ならここのコードが実行されます。
        printf("引数の値"number"はorgNumberよりも大きくない数値です。");
    }
}

このように、" > "演算子の左右の値を調べて演算子の左の値が右の値よりも大きい場合に処理が実行されます。

"<" 左側の値が右側の値よりも小さい

この演算子も先ほどの「大きい」の反対の意味を持っています。
左側の値が、右側の値よりも小さい場合に処理をする。」ということを示しています。

int main()
{
    int number = 15;
    TestMethode(number);

    return 0;
}

void TestMethode(int number)
{
    int orgNumber = 20;
    if (number < orgNumber)
    {
        // もし"number"が"orgNumber"よりも小さい数値の場合、このコードが実行されます。
        printf("引数の値"number"はorgNumberよりも小さい数値です。");
    }
    else
    {
        // 上記"if"の条件以外ならここのコードが実行されます。
        printf("引数の値"number"はorgNumberよりも小さくない数値です。");
    }
}

こちらも、先ほどの「" > " 大きい」と同じ要領で、
演算子の左右の値を調べて演算子の左の値が右の値よりも小さい場合に処理が実行されます。

" >= " 左側の値が右側の値以上

この演算子は、「左側の値が右側の値以上」の時に括弧内の処理を実行します。
「以上」ということは右側の値も含めます。「より大きい」は右側の値は含めません。
このあたりが混ざって覚えてしまうことがあったりするので、気を付けてください。

int main()
{
    int number = 15;
    TestMethode(number);

    return 0;
}

void TestMethode(int number)
{
    int orgNumber = 20;
    if (number >= orgNumber)
    {
        // もし"number"が"orgNumber"以上の数値の場合、このコードが実行されます。
        printf("引数の値"number"はorgNumber以上の数値です。");
    }
    else
    {
        // 上記"if"の条件以外ならここのコードが実行されます。
        printf("引数の値"number"はorgNumber以上の数値ではありません。");
    }
}

" <= " 左側の値が右側の値以下

この演算子は、「左側の値が右側の値以下」の時に括弧内の処理を実行します。
こちらも先ほどの「>=」と同じように「以下」なので右側の値も含めます。
「より小さい」は右側の値は含めません。こちらも注意しましょう。

int main()
{
    int number = 15;
    TestMethode(number);

    return 0;
}

void TestMethode(int number)
{
    int orgNumber = 20;
    if (number <= orgNumber)
    {
        // もし"number"が"orgNumber"以下の数値の場合、このコードが実行されます。
        printf("引数の値"number"はorgNumber以下の数値です。");
    }
    else
    {
        // 上記"if"の条件以外ならここのコードが実行されます。
        printf("引数の値"number"はorgNumber以下の数値ではありません。");
    }
}

まとめ

このように、条件の判定をするのにいろいろな比較演算子があるので、どれが一番合っているかなど見極めて、無駄の少ないコードを書けるようになることが理想ですね♪

今回は比較演算子を紹介しましたが、
実は比較する際に複数の条件を評価したいときもありますよね。


そんな時には「論理演算子」というものがありますので、
また機会があればこちらで解説します!

 


PVアクセスランキング にほんブログ村