참과 거짓
참과 거짓이 뭔가요?
프로그래밍에서 참(true) 과 거짓(false) 은 어떤 조건이 성립하는지 아닌지를 나타내는 가장 기본적인 값입니다.
- "1은 1과 같은가?" → 참 (맞음)
- "1은 2와 같은가?" → 거짓 (틀림)
- "오늘 비가 오는가?" → 상황에 따라 참 또는 거짓
대부분의 프로그래밍 언어는 이 두 값을 표현하기 위해 true와 false라는 별도의 타입(불리언, boolean)을 가지고 있습니다. 조건문이나 반복문은 이 참/거짓 값을 보고 다음에 무엇을 할지 결정합니다.
다른 여러 프로그래밍 언어에서 boolean의 표현
javascript
true
falsepython
True
Falsejava
true
falsecpp
true
falserust
true
falsego
true
falseruby
true
falsehaskell
True
Falser
TRUE
FALSE준랭에서의 참과 거짓
준랭에는 true나 false 같은 별도의 불리언 타입이 없습니다. 대신 모든 값을 숫자로 다루며, 그 값이 0인지 아닌지에 따라 참과 거짓이 결정됩니다.
판정 규칙
| 값 | 의미 |
|---|---|
0이 아닌 모든 수 | 참 (truthy) |
0 | 거짓 (falsy) |
즉, 오(1), 오오(2), ?오(-1), 오ㅋ오오오오오(1.5)는 모두 참으로 평가되고, 오?(0)만 거짓입니다.
비교식의 결과
비교 연산자(@, ㅁ, ㅊ 등)의 결과 또한 숫자로 표현됩니다.
| 결과 | 준랭 표기 | 값 |
|---|---|---|
| 참 | 오 | 1 |
| 거짓 | 오? | 0 |
INFO
준랭은 참과 거짓을 표현할 때 오(1)과 오?(0) 두 가지 값만 사용합니다. 따라서 비교식의 결과를 그대로 출력하면 항상 오 또는 오? 중 하나가 나옵니다.
예시
junlang
오@오위 코드는 1 == 1이므로 결과는 오(1, 참)입니다.
junlang
오@오오위 코드는 1 == 2이므로 결과는 오?(0, 거짓)입니다.
조건문에서의 활용
조건문은 식의 결과가 0이 아니면 참으로 간주합니다. 따라서 비교식 없이 숫자나 변수만으로도 분기가 가능합니다.
junlang
준서야 오 맞냐?
오준서오ㅋ
ㅋ위 코드의 조건은 오(1)이고, 이는 0이 아니므로 항상 참으로 평가되어 블록 안의 문장이 실행됩니다.
junlang
준서야 오? 맞냐?
오준서오ㅋ
ㅋ반면 이 코드의 조건은 오?(0)이므로 거짓이 되어 블록 안의 문장은 실행되지 않습니다.
비교 연산자와 조건문이 무엇인지 모르겠나요?
— 걱정마세요!
이 문서에서 설명되었던 비교 연산자와 조건문은 뒤에서 쉽게 설명해 드리겠습니다.