C 기본 문법 – 연산자 – 2 – 논리 연산자

C 기본 문법 – 연산자 – 2편: 논리 연산자 완전 정복

안녕하세요, C 언어 열공 중인 여러분 😊
이제까지 우리는 *산술 연산자(+, -, , /, %)관계 연산자(==, !=, > 등)** 를 통해 숫자를 계산하고 비교하는 방법을 배웠죠?

이번 시간에는 그보다 더 깊은 조건 판단을 위한 도구, 바로 **논리 연산자(Logical Operator)**에 대해 배우겠습니다.

🎯 논리 연산자는 여러 조건을 묶어서 하나의 결과(참/거짓)를 판단할 수 있게 해줘요!

마치 “이 조건도 맞고 저 조건도 맞으면 실행해줘!” 같은 복합 조건을 구현할 수 있는 강력한 연산자랍니다.
그럼 지금부터 예제와 비유를 통해 논리 연산자의 모든 것을 파헤쳐 볼게요! 😊


논리 연산자란?

논리 연산자는 두 개 이상의 조건을 연결하여 참 또는 거짓을 판단하는 연산자입니다.

관계 연산자가 “조건 하나”를 판별한다면,
논리 연산자는 “조건 여러 개를 묶어서” 판단합니다.

📦 비유하자면,
조건 하나는 작은 스위치라면, 논리 연산자는 여러 스위치를 조합해 켜지는 회로 장치 같아요.
전부 켜져야 작동하는 경우도 있고, 하나만 켜져도 되는 경우도 있죠!


C 언어의 논리 연산자 종류

연산자 의미 설명 예시
&& AND (그리고) 양쪽 조건이 모두 참이면 참 a > 0 && a < 10
` | | ` OR (또는) 양쪽 조건 중 하나라도 참이면 참 `score < 0 | | score > 100`
! NOT (부정) 조건의 참/거짓을 반대로 !isValid

논리 연산자 예제 코드

#include <stdio.h>

int main() {
    int a = 5, b = 10;

    printf("AND: %d
", a > 0 && b > 0);     // 1 (참)
    printf("OR: %d
", a < 0 || b > 0);      // 1 (참)
    printf("NOT: %d
", !(a > 0));           // 0 (거짓)

    return 0;
}

출력 결과:

AND: 1
OR: 1
NOT: 0

각 연산자 개념 쉽게 정리하기

🔹 AND (&&)

모든 조건이 참이어야 전체가 참

int age = 25;
if (age >= 18 && age <= 65) {
    printf("근로 연령대입니다.
");
}

🧠 조건 1: age >= 18 (참)
조건 2: age <= 65 (참)
둘 다 참이므로 전체도 참 → 실행됨


🔹 OR (||)

하나라도 참이면 전체가 참

char ch = 'Y';
if (ch == 'Y' || ch == 'y') {
    printf("예라고 답했습니다.
");
}

대소문자 구분 없이 ‘Y’ 또는 ‘y’만 입력해도 조건 통과!


🔹 NOT (!)

참 → 거짓, 거짓 → 참

int loggedIn = 0;
if (!loggedIn) {
    printf("로그인이 필요합니다.
");
}

loggedIn이 0(거짓)이므로 !loggedIn은 1(참)이 되어 실행됨


복합 조건 예시: 로그인 조건 판단

int idCorrect = 1;
int pwCorrect = 0;

if (idCorrect && pwCorrect) {
    printf("로그인 성공!
");
} else {
    printf("로그인 실패!
");
}

하나라도 틀리면 &&는 거짓 → 로그인 실패 처리


논리 연산자 우선순위

우선순위 연산자 의미
1 ! NOT
2 && AND
3 ` | | ` OR

📌 괄호로 묶어서 우선순위를 명확히 해주는 습관을 들이세요!

if (!(a > 0 && b > 0)) { ... }   // a, b 모두 양수가 아니면

조건문 속 논리 연산자 예시 모음

❓ 점수가 0 이상 100 이하일까?

if (score >= 0 && score <= 100) {
    printf("올바른 점수입니다.
");
}

❓ 값이 범위를 벗어났을까?

if (score < 0 || score > 100) {
    printf("유효하지 않은 점수입니다.
");
}

❓ 플래그가 꺼져 있을까?

if (!isEnabled) {
    printf("설정이 비활성화되어 있습니다.
");
}

✅ 논리 연산자 요약 정리

연산자 의미 결과가 참이 되는 경우
&& AND 둘 다 참
` | | ` OR 하나라도 참
! NOT 피연산자가 거짓

⚠️ 논리 연산자 사용 시 주의할 점

주의사항 설명
&&& 구분 &는 비트 연산자, &&는 논리 연산자예요! 혼동 금지
` | | `는 첫 조건이 참이면 두 번째 조건은 생략됨 이를 **단락 평가(short-circuit evaluation)**라고 해요
비교 연산자와 함께 써야 의미 있음 a && b가 아닌, a > 0 && b > 0처럼 논리식 작성
!는 괄호로 감싸주는 습관 들이기 !(a > 0)처럼 명확한 표현을 추천합니다

마무리하며 💬

논리 연산자는 C 언어에서 조건의 세계를 넓혀주는 열쇠입니다.
단순히 값 하나를 판단하던 것에서 벗어나,
여러 조건을 묶어 복잡한 판단도 손쉽게 구현할 수 있게 해주죠!

앞으로 조건문, 반복문, 상태 제어 등 거의 모든 곳에서 쓰이게 될 논리 연산자,
오늘 정확하게 배워두면 앞으로 실수할 일이 훨씬 줄어들 거예요 😊

다음 시간에는 **대입 연산자 및 복합 대입 연산자 (+=, *=, %=, 등)**를 함께 배워보겠습니다!

그럼 오늘도 수고 많으셨습니다. 감사합니다! 💻✨

답글 남기기