본문 바로가기
개발/C, C++

[c/c++] 제어문 조건

by 77monkey 개발자 2023. 8. 14.
반응형

제어문에는 if, switch, for, while, do {}while 등 여러가지가 있는데 여기에서 중요한 것 중에 하나가 조건이다고 생각한다. 
조건은 언제가 참이고 언제가 거짓인지 파악하는 것은 중요한 일이다. 
그래야 프로그램이 어떻게 실행될지,
의도한대로 동작하는지 알 수 있다.


조건

조건은 참 아니면 거짓 이렇게 2가지로 나뉘게 된다. 
입사를 처음 했을 때 사수분께서 내게 문제를 낸 적이 있었다. 
참은 무엇이냐?  거짓은 무엇이냐? 
이 때 나는 참이 1이라고 생각했고, 거짓은 0이라고 생각했다.
사수분께서는 내게 거짓은 0이 맞지만, 참은 거짓이 아닌 모든 것이 다 참이라고 알려주셨다.

 

참은 0이 아닌 경우를 참이라고 한다. 
boolean을 알고 있다면 보통 #define으로 참을 1로 정의하고 거짓을 0으로 정의하고 있어서 과거의 나처럼 1이라고 답할 수도 있다. 
하지만 0이 아닌 모든 값이 다 참이다. 

 

거짓

거짓은 간단하다. 0일 경우만 거짓이다.

 

예시

아래는 간단한 예시이다.

3 //참
100000 //참
-1 //참
1 == 1 //참
1 != 1 //거짓
0 //거짓
!(100000000) //거짓

조금 헷갈릴 수 있는 부분이 마지막일 것 같다.
코딩을 하다 보면 "!(100000000)"과 같은 코드를 보면 헷갈린다.
직관적이지 않다고 해야 하나... 간단한데 가끔 혼동이 된다.
개인적으로는 "100000000 == 0" 으로 표현하는 것을 선호한다.
선호에 따라서 더 잘 읽히는 코드를 사용하길 바란다.

반응형

'개발 > C, C++' 카테고리의 다른 글

[c/c++] for문 (2)  (1) 2023.08.16
[c/c++] for문  (0) 2023.08.16
[c/c++] if 문  (0) 2023.08.14
[c/c++] main 함수  (0) 2023.08.14
[c/c++] 전처리지시자  (0) 2023.08.10