
'참'을 의미하는 true와 '거짓'을 의미하는 false
정수 0은 '거짓', 그리고 0이 아닌 모든 정수는 '참'을 의미하는 숫자로 정의하고 있다. 따라서 참과 거짓의 표현을 위해 보통 다음과 같이 상수를 정의한다.
#define TRUE 1
#define FALSE 0
그러나 C++에서는 참과 거짓의 표현을 위한 키워드 true와 false를 정의하고 있기에 굳이 매크로 상수를 이용해 참과 거짓을 표현할 필요가 없다.
TrueAndFalse.cpp
#include <iostream>
using namespace std;
int main(void) {
int num = 10;
int i = 0;
cout<<"true: "<<true<<endl;
cout<<"false: "<<false<<endl;
while(true) {
cout<<i++<<' ';
if(i>num)
break;
}
cout<<endl;
cout<<"size of 1: "<<sizeof(1)<<endl;
cout<<"size of 0: "<<sizeof(0)<<endl;
cout<<"size of true: "<<sizeof(true)<<endl;
cout<<"size of false: "<<sizeof(false)<<endl;
return 0;
}
true: 1
false: 0
0 1 2 3 4 5 6 7 8 9 10
size of 1: 4
size of 0: 4
size of true: 1
size of false: 1
위의 예제를 살펴보자.
cout<<"true: "<<true<<endl;
cout<<"false: "<<false<<endl;
이는 키워드 true와 false를 콘솔에 출력했을 떄의 출력내용을 확인하기 위한 문장이다.
while(true)
C언어에서는 무한루프를 형성하기 위해 일반적으로 숫자 1을 사용한다. C++에서도 물론 숫자 1을 사용할 수 있지만, 이렇게 true를 대신 사용할 수도 있다.
cout<<"size of 1: "<<sizeof(1)<<endl;
cout<<"size of 0: "<<sizeof(0)<<endl;
상수 1과 상수 0의 데이터 크기를 확인하기 위한 문장이다. 정수 데이터의 크기는 4byte이다.
cout<<"size of true: "<<sizeof(true)<<endl;
cout<<"size of false: "<<sizeof(false)<<endl;
참과 거짓을 의미하는 데이터 true와 false의 크기를 확인하기 위한 문장이다. true, false에 해당하는 데이터 크기는 1byte이다.
위 예제를 분석해보면 다음과 같은 사실을 알 수 있다.
true와 false를 int형으로 반환한 값이 각각 1과 0일 뿐인 것이다.
헷갈려 하지 말도록 하자!
자료형 bool
true와 false를 가리켜 bool형 데이터라 한다. int, double과 마찬가지로 기본자료형의 하나이기 때문에 다음과 같이 변수를 선언하는 것이 가능하다.
bool isTrueOne = true;
bool isTrueTwo = false;
아래의 예제를 통해 bool형이 어떻게 사용되는지 알아보자.
DataTypeBool.cpp
#include <iostream>
using namespace std;
bool IsPositive(int num) {
if(num<=0)
return false;
else
return true;
}
int main(void) {
bool isPos;
int num;
cout<<"Input number: ";
cin>>num;
isPos=IsPositive(num);
if(isPos)
cout<<"Positive number"<<endl;
else
cout<<"Negative number"<<endl;
return 0;
}
Input number: 12
Positive number
자 분석해보도록 하자.
bool IsPositive(int num)
bool도 기본자료형이기 떄문에 함수의 반환형으로도 선언이 가능하다.
if(num<=0)
return false;
else
return true;
숫자가 0이하면 false를, 나머지 경우(양수)일 경우에는 true를 반환한다.
bool isPos;
bool형 변수를 선언해서 함수 IsPositive가 반환하는 bool형 데이터를 저장하고 있다.
1,0을 저장할 수 있는 게 아니라, true, false를 저장할 수 있는 데이터이다!