14. C++ 불리언(boolean)

1. 개요

1.1 문서 개요

이 문서는 C++에서의 불리언(Boolean) 자료형에 대해 정리하는 문서입니다. 불리언은 조건문, 반복문, 논리 연산 등 프로그램의 흐름 제어에서 핵심적인 역할을 합니다. C++에서 bool 자료형은 참과 거짓을 나타내며, 제어 흐름, 조건 분기, 비트 연산 등의 기반 요소로 사용됩니다.

2. 내용

2.1 C++에서의 불리언 자료형 정의

2.1.1 bool 자료형 개요

C++에서 불리언은 bool 키워드를 통해 선언합니다. 이 자료형은 두 가지 값만 가질 수 있습니다:

  • true (참)
  • false (거짓)
bool isReady = true;
bool hasError = false;

2.1.2 내부 표현

bool 값은 내부적으로 정수 값으로 변환되어 처리됩니다:

  • true1로 처리됩니다.
  • false0으로 처리됩니다.
int a = true;  // a = 1
int b = false; // b = 0

또한, 정수형 값이 bool로 변환될 때, 0은 false, 0이 아닌 값은 true로 간주됩니다.

bool x = 10;    // true
bool y = 0;     // false

2.2 불리언과 조건문

2.2.1 조건문에서의 사용

if, while, for 등의 조건문에서 bool 값은 직접 사용되거나 표현식의 결과로 평가됩니다.

bool isValid = true;

if (isValid) {
    std::cout << "유효합니다." << std::endl;
}

2.2.2 암시적 변환과 평가

다음과 같은 방식으로 정수나 포인터도 조건문 내에서 평가될 수 있습니다:

int number = 5;
if (number) { // number != 0 → true
    std::cout << "0이 아닙니다." << std::endl;
}

2.3 논리 연산자와 불리언

2.3.1 주요 논리 연산자

C++에서 bool 값과 함께 사용되는 주요 논리 연산자는 다음과 같습니다:

연산자 의미 예시
&& 논리 AND a && b → 둘 다 참일 때 참
` `
! 논리 NOT !aa가 거짓이면 참
bool a = true;
bool b = false;

bool result1 = a && b;  // false
bool result2 = a || b;  // true
bool result3 = !b;      // true

2.3.2 단락 평가 (Short-circuit Evaluation)

&&|| 연산자는 좌측 피연산자의 결과에 따라 우측 피연산자의 평가 여부가 결정됩니다.

bool func() {
    std::cout << "함수 호출됨" << std::endl;
    return true;
}

bool flag = false;

if (flag && func()) {
    // func()는 호출되지 않음
}

2.4 불리언과 STL, 반환값

2.4.1 표준 라이브러리에서의 활용

표준 라이브러리에서 bool은 다음과 같은 경우에 자주 사용됩니다:

  • std::vector::empty(), std::string::empty() 등의 반환형
  • std::find() != container.end() 조건 비교
std::vector<int> v = {1, 2, 3};
if (!v.empty()) {
    std::cout << "벡터가 비어있지 않습니다." << std::endl;
}

2.4.2 사용자 정의 함수에서의 반환

불리언은 함수의 성공 여부를 반환하는 데에도 활용됩니다.

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

2.5 명시적 형변환과 std::boolalpha

2.5.1 명시적 형변환

C++에서는 static_cast를 통해 bool로 명시적 형변환을 수행할 수 있습니다.

int x = 5;
bool b = static_cast<bool>(x);  // true

2.5.2 std::boolalpha 사용

std::cout을 사용할 때 불리언을 true/false 문자열로 출력하려면 std::boolalpha를 사용합니다.

bool flag = true;
std::cout << std::boolalpha << flag << std::endl;  // "true"

기본값은 정수 출력 (1 또는 0)이며, std::noboolalpha를 사용하면 다시 숫자 형태로 출력됩니다.

3. 마무리

C++에서 불리언 자료형은 프로그램의 흐름 제어, 논리적 판단, 조건 연산 등 다양한 영역에서 핵심적인 역할을 담당합니다. bool은 단순한 데이터 표현 이상의 의미를 가지며, 다양한 형과 연산자와의 결합을 통해 조건문 및 제어 구조의 기반을 형성합니다. 또한, std::boolalpha와 같은 출력 방식 제어, 단락 평가와 같은 최적화된 실행 구조 등과 함께 실무에서 널리 활용됩니다. 불리언의 처리 방식과 활용 패턴을 이해하면 C++의 조건 기반 논리 흐름을 보다 정교하게 구성할 수 있습니다.

댓글 달기

이메일 주소는 공개되지 않습니다. 필수 필드는 *로 표시됩니다

error: Content is protected !!
위로 스크롤