Computer >> 컴퓨터 >  >> 프로그래밍 >> C 프로그래밍

C 언어 관계 연산자와 논리 연산자 완벽 가이드: 개념부터 실전 예제까지

관계 연산자(Relational Operators)란?

관계 연산자는 C 언어에서 두 값 사이의 관계를 비교할 때 사용하는 연산자입니다. 두 값의 대소 관계나 동등 여부를 검사하며, 조건이 참(true)이면 1, 거짓(false)이면 0을 반환합니다.

C 언어에서 제공하는 관계 연산자는 다음과 같습니다.

연산자연산자 이름
==같음 (Equal to)
>크다 (Greater than)
<작다 (Less than)
!=같지 않음 (Not equal to)
>=크거나 같음 (Greater than or equal to)
<=작거나 같음 (Less than or equal to)

관계 연산자 예제

아래 예제는 두 변수 x와 y를 다양한 관계 연산자로 비교하는 코드입니다.

#include <stdio.h>
int main() {
    int x = 10;
    int y = 28;
    if(x==y)
        printf("두 변수는 서로 같습니다\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 조건만 참이 되어 해당 문장들만 출력됩니다.

논리 연산자(Logical Operators)란?

논리 연산자는 하나 이상의 조건을 결합하거나 반전시켜 논리적인 판단을 수행하는 연산자입니다. 조건식의 결과가 참인지 거짓인지에 따라 0 또는 1을 반환하며, C 언어에서 조건 분기(if문)와 반복문(while문 등)의 의사 결정에 필수적으로 사용됩니다.

C 언어에서 제공하는 논리 연산자는 다음과 같습니다.

연산자의미결과
&&논리 AND모든 피연산자가 참일 때만 참
||논리 OR피연산자 중 하나라도 참이면 참
!논리 NOT피연산자가 0(거짓)일 때 참

논리 연산자 예제

아래 예제는 AND(&&), OR(||), NOT(!) 연산자의 동작을 보여줍니다.

#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와 같습니다

x<y는 참(1)이지만 a==b는 거짓(0)이므로 AND 연산(&&)은 전체가 거짓이 되어 첫 번째 문장은 출력되지 않습니다. 반면 OR 연산(||)은 둘 중 하나만 참이어도 참이 되므로 두 번째 문장이 출력됩니다. 또한 x는 10으로 0이 아니므로 !x는 거짓이 되어 마지막 문장도 출력되지 않습니다.

정리

관계 연산자는 두 값을 비교하고, 논리 연산자는 여러 조건을 조합하여 복잡한 판단을 가능하게 합니다. 두 연산자 모두 조건이 참일 때 1, 거짓일 때 0을 반환한다는 점을 기억하면, if문과 반복문에서 조건식을 자유롭게 작성할 수 있습니다.