• 2.5.1 Boolean type
  • 2.5.2 사용 시 주의사항

2.5.1 Boolean type

 

Boolean 자료형은 참인지 거짓인지에 대한 값을 가지는 자료형이다. true는 1의 값을 가지며, false는 0의 값을 가진다. 따라서 일반적인 출력을 실행할 경우 true와 false는 각각 1과 0을 출력하게 된다. 콘솔 창에서 true/false로 출력하고 싶다면 std::boolalpha를 통해 변경할 수 있다.

 

#include <iostream>

int main()
{
	using namespace std;

	bool b1 = true;	// copy initialization
	bool b2(false);	// direct initialization
	bool b3{ true };	// uniform initialization
	b3 = false;	// assignment operator

	cout << std::boolalpha;
	cout << b3 << endl;
	cout << b1 << endl;
	cout << std::noboolalpha;
	cout << b3 << endl;
	cout << b1 << endl;

	return 0;
}

2.5.2 사용시 주의사항

 

Boolean 자료형을 사용할 경우 여러 가지 주의사항이 있다. 첫 번째로 not operator인 !를 사용하는 경우인데, 해당 연산자는 눈에 잘보이지 않기 때문에 협업하는 사람들이 힘들어질 수 있으므로 최대한 사용 안 하도록 프로그래밍을 하는 것이 좋다. 또한 c++에서는 0을 제외한 모든 수를 true로 인식하고서 조건을 받아들인다.

 

#include <iostream>

int main()
{
	using namespace std;

	// ! not operator 안쓸 수 있다면 안쓰는게 좋다.

	// 논리 연산자 &&(and) 
	cout << (true	&& true)	<< endl; // true
	cout << (true	&& false)	<< endl; // false
	cout << (false	&& true)	<< endl; // false
	cout << (false	&& false)	<< endl; // false

	// 논리 연산자 ||(or) 
	cout << (true	|| true)	<< endl; // true
	cout << (true	|| false)	<< endl; // true
	cout << (false	|| true)	<< endl; // true
	cout << (false	|| false)	<< endl; // false

	// 0을 제외한 모든 수는 true
	if (5)
		cout << "This is true" << endl;
	else
		cout << "This is false" << endl;

	bool b;
	cin >> b;
	cout << "Your input : " << b << endl;

	return 0;
}

 

입력값에 true 혹은 false라고 입력하면 모두 true로 출력할 수도 있다. 이는 방금 언급한 내용에 의한 것이며, 입력값을 문자열로 다루기 때문에 false를 0으로 인식하지 못하기 때문이다. 하지만 컴파일러마다 다르고 버전마다 다르니 이처럼 모호한 입력을 주지 않도록 해야 한다. 0을 입력하면 정확히 false로 인식한다.

'Programming Language > C++' 카테고리의 다른 글

Section 2.7. 리터럴 상수와 심볼릭 상수  (0) 2021.10.19
Section 2.6. char 자료형  (0) 2021.10.18
Section 2.4. 부동소수점수(floating point numbers)  (0) 2021.10.14
Section 2.3. void  (0) 2021.10.12
Section 2.2. 정수형  (0) 2021.10.11

+ Recent posts