bool 형식

bool 형식 (C# 참조)

bool 형식은 참(true) 또는 거짓(false) 두 값만 가지는 불리언(Boolean) 값을 다루는 기본 형식이에요. 코드에서 참/거짓을 표현해야 할 일이 생기면, 바로 이 형식을 쓰면 됩니다.

출처: Microsoft Learn

본문

먼저 이름부터 정리해 볼게요. bool 형식 키워드는 .NET의 xref:System.Boolean?displayProperty=nameWithType 구조체 형식 이름을 줄여 부르는 별칭(alias)입니다. 값이 true 또는 false 중 하나만 되어야 할 때 쓰는 형식이에요.

C# 최초 버전부터 있던 이 키워드를 가지고 bool 값끼리 논리 연산(AND, OR 등)을 하고 싶다면, 부울 논리 연산자를 쓰면 됩니다. 그리고 bool은 비교 연산자와 같음 연산자의 결과 형식이기도 해요. 즉 a > b 같은 비교의 결과가 바로 bool 값으로 나온다는 뜻이죠. 이 bool 식은 조건문에서 참/거짓의 기준이 되는 제어 식으로 그대로 쓸 수 있는데, 특히 if, do, while, for 문과 조건 연산자 ?:에서 그렇게 사용합니다.

한 가지 알아두면 편한 점이 있어요. bool 형식의 기본값(default)은 false입니다. 변수를 만들고 아무 값도 넣지 않으면 거짓으로 초기화된다고 생각하시면 돼요.

리터럴(Literals)

bool 변수를 초기화하거나 bool 값을 넘길 때는 truefalse 리터럴을 그대로 쓰면 됩니다. 아래 코드에서 확인해 볼게요.

bool check = true;
Console.WriteLine(check ? "Checked" : "Not checked");  // output: Checked

Console.WriteLine(false ? "Checked" : "Not checked");  // output: Not checked

첫 줄은 checktrue를 넣어서 "Checked"가 출력되고, 마지막 줄은 false를 직접 조건 자리에 넣었으니 "Not checked"가 출력되는 걸 볼 수 있어요.

세 값 논리(Three-valued Boolean logic)

bool은 딱 두 값만 가지지만, 실제로는 참/거짓에 더해 "알 수 없음"까지 세 가지 상태를 다뤄야 하는 상황도 있어요. 예를 들어 세 값 논리를 지원하는 데이터베이스를 다룰 때가 그렇죠. 이럴 때는 널 가능한 bool? 형식을 쓰면 됩니다. bool? 피연산자에 대해서는 미리 정의된 &| 연산자가 세 값 논리를 지원해 줘요. 자세한 내용은 부울 논리 연산자 문서의 Nullable 부울 논리 연산자 섹션을 참고하세요.

널 가능 값 형식에 대해 더 궁금하시다면 Nullable 값 형식 문서를 보시면 돼요.

변환(Conversions)

C#이 bool 형식과 관련해 제공하는 변환은 딱 두 가지뿐이에요. 하나는 대응하는 널 가능 bool? 형식으로의 암시적 변환이고, 다른 하나는 bool? 형식에서의 명시적 변환입니다. 다만 .NET에는 bool 형식으로/에서 변환할 때 쓸 수 있는 추가 메서드들이 따로 있어요. 그 내용은 xref:System.Boolean?displayProperty=nameWithType API 참조 페이지의 불리언 값으로/에서 변환 섹션에서 확인할 수 있습니다.

C# 언어 사양(C# language specification)

더 공식적이고 엄밀한 정의가 필요하다면, C# 언어 사양bool 형식 섹션을 참고하세요.

더 알아보기