Skip to content

참과 거짓

참과 거짓이 뭔가요?

프로그래밍에서 참(true)거짓(false) 은 어떤 조건이 성립하는지 아닌지를 나타내는 가장 기본적인 값입니다.

  • "1은 1과 같은가?" → (맞음)
  • "1은 2와 같은가?" → 거짓 (틀림)
  • "오늘 비가 오는가?" → 상황에 따라 참 또는 거짓

대부분의 프로그래밍 언어는 이 두 값을 표현하기 위해 truefalse라는 별도의 타입(불리언, boolean)을 가지고 있습니다. 조건문이나 반복문은 이 참/거짓 값을 보고 다음에 무엇을 할지 결정합니다.

다른 여러 프로그래밍 언어에서 boolean의 표현
javascript
true
false
python
True
False
java
true
false
cpp
true
false
rust
true
false
go
true
false
ruby
true
false
haskell
True
False
r
TRUE
FALSE

준랭에서의 참과 거짓

준랭에는 truefalse 같은 별도의 불리언 타입이 없습니다. 대신 모든 값을 숫자로 다루며, 그 값이 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)이므로 거짓이 되어 블록 안의 문장은 실행되지 않습니다.

 비교 연산자와 조건문이 무엇인지 모르겠나요?

 — 걱정마세요!
 이 문서에서 설명되었던 비교 연산자조건문은 뒤에서 쉽게 설명해 드리겠습니다.