Cプログラミング
 Computer >> コンピューター >  >> プログラミング >> Cプログラミング

【C言語】関係演算子と論理演算子の基本をサンプルコード付きで解説

関係演算子とは

関係演算子(比較演算子)は、C言語において2つの値の大小関係や等価性を比較するために使用される演算子です。比較の結果、関係が成立していれば(真であれば)「1」を返し、成立していなければ(偽であれば)「0」を返します。if文などの条件分岐と組み合わせることで、プログラムの流れを制御する際に欠かせない存在となっています。

C言語の主な関係演算子一覧

演算子意味
==等しい(左辺と右辺が一致する)
>より大きい
<より小さい
!=等しくない
>=以上(より大きい、または等しい)
<=以下(より小さい、または等しい)

注意点として、「等しい」を表すのは「==」(イコール2つ)であり、「=」1つは代入を意味するため混同しないようにしましょう。

関係演算子の使用例

#include <stdio.h>
int main() {
    int x = 10;
    int y = 28;
    if(x == y)
        printf("x と y は等しい\n");
    if(x > y)
        printf("x は y より大きい\n");
    if(x < y)
        printf("x は y より小さい\n");
    if(x != y)
        printf("x と y は等しくない\n");
    if(x <= y)
        printf("x は y 以下である\n");
    if(x >= y)
        printf("x は y 以上である\n");
    return 0;
}

実行結果

x は y より小さい
x と y は等しくない
x は y 以下である

この例では x が 10、y が 28 です。「x == y」「x > y」「x >= y」は偽となるため何も表示されず、真となった「x < y」「x != y」「x <= y」の3つのprintf文だけが実行されています。


論理演算子とは

論理演算子は、複数の条件を組み合わせたり、条件の真偽を反転させたりするために使用される演算子です。条件式の評価結果に基づいて「0」または「1」を返し、C言語における意思決定(条件分岐)に広く活用されています。なお、C言語では「0以外の値は真」、「0は偽」として扱われる点も重要です。

C言語の主な論理演算子一覧

演算子意味結果
&&論理AND(かつ)すべてのオペランドが真の場合にのみ真(1)を返す
||論理OR(または)どちらか一方でも真であれば真(1)を返す
!論理NOT(否定)オペランドが0(偽)の場合に真(1)を返す

論理演算子の使用例

#include <stdio.h>
int main() {
    int x = 10;
    int y = 28;
    int a = 15;
    int b = 20;
    if(x < y && a == b)
        printf("x は y より小さい かつ a と b は等しい\n");
    if(x < y || a == b)
        printf("x は y より小さい または a と b は等しい\n");
    if(!x)
        printf("x は 0 である\n");
    return 0;
}

実行結果

x は y より小さい または a と b は等しい

実行結果の解説

  • 1つ目のif文:x < y は真ですが、a == b(15 == 20)は偽のため、AND演算の結果は偽となり表示されません。
  • 2つ目のif文:x < y が真であるため、OR演算では片方が真であれば全体が真となり、printf文が実行されます。
  • 3つ目のif文:x の値は 10(0以外=真)なので、「!x」は偽(0)となり表示されません。x が 0 だった場合にのみ真となります。

まとめ

関係演算子は2つの値を比較して真偽を判定し、論理演算子は複数の条件を組み合わせたり否定したりすることで、より柔軟な条件分岐を実現します。両者を正しく使い分けられるようになると、if文やwhile文などの制御構造を自在に操れるようになり、C言語プログラミングの幅が大きく広がります。

  1. Javaのインクリメント・デクリメント演算子の基本と評価の仕組み

    ```html Javaのインクリメント・デクリメント演算子とは Javaには、変数の値を1つ増加させる「インクリメント演算子(++)」と、1つ減少させる「デクリメント演算子(--)」が用意されています。どちらもfor文などのループ処理やカウンタ管理で頻繁に使われる、非常に重要な演算子です。 後置インクリメント(b++)の動作 b++のように変数の後ろに置く「後置」形式の場合、まず現在の値で式を評価し、その後に値が1増加します。逆に++bのように前に置く「前置」形式では、値の増加が先に行われます。この違いを正しく理解していないと、意図しないバグの原因になるため注意が必要です。 複合条件式の評価

  2. Pythonの論理演算子(and・or・not)の使い方を徹底解説

    Pythonの論理演算子とは Pythonでは、複数の条件を組み合わせて評価するための論理演算子が用意されています。主な論理演算子は「and」「or」「not」の3種類です。 ここでは、変数 a に 10、変数 b に 20 が代入されている場合を例に、それぞれの演算子の動作を解説します。 1. and(論理積) 両方のオペランドが真(True)である場合にのみ、条件全体が真になります。どちらか一方でも偽(False)であれば、結果は偽となります。 15) # True 2. or(論理和) 2つのオペランドのうち、どちらか一方でもゼロ以外(真)であれば、条件全体が真になります。両方が