[C언어] 부울(Boolean) 값과 조건식

2025. 6. 14. 23:26·개발이야기/C언어
728x90

 

부울(Boolean) 값과 조건식: C 언어 vs 파이썬 비교

프로그래밍에서 부울 값(Boolean) 은 참(true)과 거짓(false)을 나타내는 논리적 데이터입니다. 조건문이나 반복문을 제어할 때 매우 중요한 역할을 합니다.

이 문서에서는 C 언어와 파이썬의 부울 값 사용법, 기본 조건식, 데이터의 참/거짓 판별 방식 등을 비교해 설명합니다.


1. 부울 값이란?

  • 파이썬: True, False는 내장된 불리언 타입이며 실제로는 int의 서브클래스입니다.
  • C 언어: 0은 false, 0이 아닌 값은 모두 true로 간주됨. C99 이후 <stdbool.h> 사용 시 true, false 키워드 제공.

Python 예제

is_valid = True  # 참
is_empty = False  # 거짓
print(True + True)  # 2 (True는 1로 간주됨)
print(isinstance(True, int))  # True

C 예제

#include <stdbool.h>
#include <stdio.h>

int main() {
    bool is_valid = true;  // 참
    bool is_empty = false;  // 거짓
    printf("bool 크기: %zu바이트\n", sizeof(bool));  // bool은 일반적으로 1바이트
    printf("true + true = %d\n", true + true);  // 2
    return 0;
}

2. 조건식 평가 방식

✅ Python 조건 평가 방식

  • 숫자 0, 빈 문자열 '', 빈 리스트 [], None 등은 모두 False
  • 나머지 값은 True
if 0:
    print("실행 안 됨")
if 123:
    print("실행됨")

✅ C 조건 평가 방식

  • 0은 false, 나머지 정수는 true
#include <stdio.h>

int main() {
    if (0) {
        printf("실행 안 됨\n");
    }
    if (123) {
        printf("실행됨\n");
    }
    return 0;
}

3. 비교 연산자와 논리 연산자

비교 연산자

연산자의미

== 같다
!= 다르다
> 크다
< 작다
>= 크거나 같다
<= 작거나 같다

논리 연산자

Python C 언어 의미
and && 논리 AND
or `   ` 논리 OR
not ! 논리 NOT

Python 예제

x = 10
y = 5
if x > 5 and y < 10:
    print("조건이 모두 참입니다.")

C 예제

#include <stdio.h>

int main() {
    int x = 10;
    int y = 5;
    if (x > 5 && y < 10) {
        printf("조건이 모두 참입니다.\n");
    }
    return 0;
}

4. 단축 평가 (Short-Circuit Evaluation)

논리 연산자 and, or (Python) / &&, || (C)는 앞의 조건에 따라 뒤를 평가하지 않을 수 있습니다. 이를 단축 평가라고 합니다. C 언어에서는 특히 조건 분기와 함수 호출 최적화에서 많이 사용됩니다.

Python 예제

def side_effect():
    print("실행됨")
    return True

if False and side_effect():  # 앞 조건이 False라서 side_effect()는 실행되지 않음
    pass

C 예제

#include <stdio.h>

int side_effect() {
    printf("실행됨\n");
    return 1log_and_return(const char *label, int value) {
    printf("%s 평가됨\n", label);
    return value;
}

int main() {
    if (0 && side_effect()) {
        // 실행 안 됨
log_and_return("오른쪽", 1)) {
        printf("이 줄은 실행되지 않음\n");
    }

    if (1 || log_and_return("오른쪽", 0)) {
        printf("이 줄은 실행됨 (오른쪽은 평가 안 됨)\n");
    }

    return 0;
}

5. 부울값 반환 함수 예제

함수에서 조건 결과를 bool 타입으로 반환하는 방식은 조건 판단을 모듈화할 때 유용합니다.

C 예제

#include <stdio.h>
#include <stdbool.h>

bool is_even(int n) {
    return n % 2 == 0;
}

int main() {
    printf("4는 짝수인가요? %d\n", is_even(4));  // 1 출력
    printf("5는 짝수인가요? %d\n", is_even(5));  // 0 출력
    return 0;
}

Python 예제

def is_even(n):
    return n % 2 == 0

print(is_even(4))  # True
print(is_even(5))  # False

6. 삼항 연산자 (C 전용)

조건문을 간단하게 표현할 때 삼항 연산자를 사용할 수 있습니다.

#include <stdio.h>

int main() {
    int score = 80;
    const char* result = (score >= 60) ? "합격" : "불합격";
    printf("결과: %s\n", result);
    return 0;
}

7. 드모르간 법칙

논리 표현을 부정할 때 유용한 수학적 법칙으로, 조건 최적화나 부정 조건의 명확화에 사용됩니다.

법칙 공식

  • !(A && B) == (!A || !B)
  • !(A || B) == (!A && !B)

C 예제

#include <stdio.h>

int main() {
    int x = -5, y = 10;

    if (!(x > 0 && y > 0)) {
        printf("x 또는 y가 0 이하입니다.\n");
    }

    // 동일한 의미
    if (x <= 0 || y <= 0) {
        printf("드모르간 형태로 표현됨\n");
    }

    return 0;
}

마무리 정리

부울(Boolean) 값은 조건문과 반복문을 구현하는 핵심 도구입니다. 특히 C 언어에서는 논리 연산자의 동작 원리와 단축 평가, 메모리 구조까지 이해하면 더욱 안전하고 효율적인 코드를 작성할 수 있습니다. Python과 함께 비교하며 공부하면 개념이 훨씬 탄탄해집니다.

728x90

'개발이야기 > C언어' 카테고리의 다른 글

[C언어] 스택  (0) 2025.06.15
[C언어] 함수  (0) 2025.06.14
[C언어] 조건문과 반복문  (0) 2025.06.14
[C언어] 언어 표준 입출력 함수  (1) 2025.06.14
[C언어] 산술 연산자  (0) 2025.06.14
'개발이야기/C언어' 카테고리의 다른 글
  • [C언어] 스택
  • [C언어] 함수
  • [C언어] 조건문과 반복문
  • [C언어] 언어 표준 입출력 함수
Study & Stack
Study & Stack
하루하루 공부하며 개발 지식을 쌓아가는 공간입니다. 자료구조, 알고리즘, C언어, 시스템 프로그래밍까지 공부한 내용을 ‘Stack’처럼 쌓고 공유합니다.
  • Study & Stack
    Study & Stack
    Study & Stack
  • 전체
    오늘
    어제
    • 목차
      • 크래프톤정글이야기
        • 정글의기록
        • TIL - WIL
      • 개발이야기
        • C언어
        • 파이썬
        • 코딩테스트
        • CSAPP
      • 협업툴
        • git
      • 나의 이야기
        • 내돈내산
  • 블로그 메뉴

    • 홈
    • 태그
    • 방명록
  • 링크

  • 250x250
  • hELLO· Designed By정상우.v4.10.3
Study & Stack
[C언어] 부울(Boolean) 값과 조건식
상단으로

티스토리툴바