본문 바로가기

c기초

014. 논리형 변수 이해하기 (bool)

솔직히 이번거 너무 길다. 길다기 보단 타이핑하기가 짜증난다.

다 쳐보던지 아니면 if문 하나만 만들어서 값만 바꿔보던지...

다 치는게 힘들고 짜증나겠지만 기억에 오래 남지 않을까?

<결과>

논리형 변수 b의 값은 1
논리형 변수 j의 값은 0
10 > 5 의 식은 참입니다.
10 > 20 의 식은 거짓입니다.
-1 은 참입니다.

 

제목을 논리형 변수 이해하기 (bool) 이라고 써놨다. 근데 책에 본문에 보면 논리형 변수라는건 사실 존재하지 않아요.

이게 무슨 소리인가?

bool 이라는건 boolean 이라고 해서 true 와 false 라고 참과 거짓을 의미하는 데이터 타입이다.

c언어에서는 bool이 없어서 정수형 변수를 논리형 변수처럼 사용하는 것이다.

 

- b = 10 > 5;

이 부분은 참이다. 저번에 알려준 디버그 기능을 사용해 보면 b의 값이 1이라고 나온다.

 

- j = 10 > 20;

이 부분은 거짓이다. 저번에 알려준 디버그 기능을 사용해 보면 j의 값이 0이라고 나온다.

 

- if()

if는 저번에도 말했지만 참이면 if문안에 있는 있는 걸 실행하고 거짓이면 else 문에 있는 걸 실행한다.

if는 0을 제외한 모든 값을 참으로 본다. 그래서 b와 -1을 참으로 보고 j는 거짓으로 생각한다.

-1말고도 다른 값을 넣어보자. 0이 아니면 다 참으로 인식한다.

 

아까도 말했지만 논리형 변수라는건 없지만 int형으로 처리를 해서 논리형 변수처럼 사용 한 것이다.