C 기본 문법 – 기본 데이터 타입 – 3편: 불리언형(Boolean Type) 완전 이해하기
안녕하세요, C 언어에 진심인 여러분 😊
이번 시간에는 C 언어에서 조건을 판단할 때 핵심이 되는 데이터 타입, 바로 **불리언형(Boolean Type)**에 대해 알아보겠습니다!
프로그래밍에서 “참이냐 거짓이냐”, **“조건이 맞냐 안 맞냐”**라는 논리는 모든 흐름 제어문의 중심이 되죠.
그걸 담아내는 게 바로 불리언형이에요!
하지만…!
❗ C 언어는 불리언 타입이 원래부터 존재하지 않았습니다!
C는 굉장히 간결한 언어이기 때문에 불리언형을 특별히 정의하지 않고도 논리를 구현할 수 있도록 되어 있었어요.
그럼 과연 C 언어에서 불리언은 어떻게 사용되는지, 정식으로 불리언을 쓰려면 어떻게 해야 하는지,
지금부터 차근차근 알아보겠습니다!
불리언형이란?
불리언(Boolean)이란 참(True) 또는 **거짓(False)**을 표현하기 위한 데이터 타입입니다.
즉, 참 = 1, 거짓 = 0
딱 두 가지 상태만 가지는 데이터죠!
이 값들은 주로 조건문(if), 반복문(while), 논리 연산자 등에 사용됩니다.
C 언어에서 불리언은 어떻게 표현할까?
C 언어에서는 전통적으로 별도의 불리언 타입 없이도 정수형을 사용해서 참/거짓을 표현해 왔어요.
기본적인 사용 방식
int isTrue = 1; // 참
int isFalse = 0; // 거짓
if (isTrue) {
printf("조건이 참입니다!
");
}
if (!isFalse) {
printf("이것도 참입니다!
");
}
🎯 C에서는 0은 거짓, 0이 아닌 모든 값은 참으로 간주됩니다.
정식 Boolean 타입 사용하기 (stdbool.h
사용)
C99부터는 불리언을 조금 더 명확하게 쓰도록 **표준 라이브러리 <stdbool.h>
**가 추가되었어요!
#include <stdio.h>
#include <stdbool.h>
int main() {
bool isEven = true;
bool isOdd = false;
if (isEven) {
printf("짝수입니다.
");
}
if (!isOdd) {
printf("홀수가 아닙니다.
");
}
return 0;
}
핵심 포인트:
키워드 | 설명 |
---|---|
bool |
불리언 타입을 위한 별칭 (typedef _Bool bool ) |
true |
값 1로 정의된 참 |
false |
값 0으로 정의된 거짓 |
📌
stdbool.h
를 include 해야지만bool
,true
,false
를 사용할 수 있어요!
불리언과 조건문
불리언형은 조건문의 핵심입니다.
아래와 같은 구조로 많이 사용되죠.
if (조건식) {
// 조건이 참일 때 실행
} else {
// 조건이 거짓일 때 실행
}
bool isAdult = age >= 20;
if (isAdult) {
printf("성인입니다.
");
}
참/거짓 판단은 모든 조건문의 기초예요!
불리언 연산자
불리언 연산자는 참/거짓을 조합하거나 판단하는 데 사용돼요.
연산자 | 의미 | 예시 | 결과 | ||||
---|---|---|---|---|---|---|---|
&& |
논리 AND | true && false |
false | ||||
` | | ` | 논리 OR | `true | | false` | true | ||||
! |
논리 NOT | !true |
false |
예시 코드
#include <stdio.h>
#include <stdbool.h>
int main() {
bool hasKey = true;
bool isDoorLocked = false;
if (hasKey && !isDoorLocked) {
printf("문을 열 수 있습니다!
");
}
return 0;
}
불리언은 왜 중요할까?
불리언형은 조건 판단, 제어 흐름, 결과 판별 등
거의 모든 프로그램의 논리 흐름에 필수로 쓰이는 핵심 도구입니다.
예시 상황:
- 로그인 성공 여부 (
isLoggedIn == true
) - 상품 재고 유무 (
isInStock == false
) - 특정 조건 충족 여부 (
score >= 90
)
불리언을 정수로 출력할 수 있을까?
네! true
, false
는 사실 정수 1과 0이므로 %d
로 출력할 수 있어요.
#include <stdio.h>
#include <stdbool.h>
int main() {
bool check = true;
printf("불리언 값: %d
", check); // 출력: 1
return 0;
}
불리언 vs 정수형 비교
항목 | bool | int |
---|---|---|
값의 종류 | true, false | 0 ~ ±21억 |
의도 | 논리 판단 | 수치 연산 |
메모리 | 1 byte (표준은 1 이상) | 4 byte |
표현 방식 | stdbool.h 필요 |
기본 내장 |
✅ 요약 정리
항목 | 내용 |
---|---|
정의 | 참/거짓을 표현하는 타입 |
자료형 | bool (C99 이후), 정수형(int) |
참/거짓 | true = 1, false = 0 |
필요 헤더 | #include <stdbool.h> |
사용 예 | 조건문, 반복문, 상태 판단 등 |
기본 규칙 | 0은 거짓, 0 이외는 참 |
⚠️ 불리언 사용 시 주의할 점
주의사항 | 설명 |
---|---|
stdbool.h 를 include하지 않으면 bool , true , false 를 쓸 수 없어요 |
|
숫자 비교 시 == 빠뜨리지 않기 (예: if (x == 5) ) |
|
실수로 = (대입)과 == (비교)를 헷갈릴 수 있어요 |
|
조건이 정수일 경우에도 0은 거짓, 0이 아니면 참 이라는 규칙 기억하기 |
|
오래된 C 버전에서는 stdbool.h 가 없으므로 직접 정의하거나 int 사용 필요 |
마무리하며 💬
불리언형은 C 언어에서 조건 판단의 핵심입니다!
비록 C는 초창기엔 전용 불리언 타입이 없었지만,
우리는 이제 stdbool.h
를 통해 더욱 명확하고 깔끔하게 논리적 코드를 작성할 수 있게 되었어요!
다음 시간에는 문자열(String) 처리와 배열에 대해 배우면서,
문자(char)들이 모여 문장이 되는 원리까지 확장해볼게요.
그럼 오늘도 수고 많으셨고,
재미있는 C 언어 여행은 계속됩니다! 감사합니다 😊