식과 연산자
이 문서에서는 준랭에서 값을 계산하고 비교하는 방법을 다룹니다.
식이란 무엇인가요?
식(expression) 은 값을 만들어내는 코드 조각입니다. 예를 들어 1 + 2는 식이고, 그 결과는 3이라는 값입니다.
준랭에서 가장 단순한 식은 숫자 그 자체입니다.
오이 코드 자체가 하나의 식이고, 값은 1입니다. 여기에 연산자를 붙이면 더 복잡한 식을 만들 수 있습니다.
산술 연산자
| 준랭 | 의미 | 일반적인 표기 |
|---|---|---|
~ | 덧셈 | + |
. | 곱셈 | * |
.. | 제곱 | ** |
# | 나눗셈 | / |
오~오오1 + 2이므로 결과는 오오오(3)입니다.
오오.오오오2 × 3이므로 결과는 오오오오오오(6)입니다.
오오..오오오2³이므로 결과는 오오오오오오오오(8)입니다.
비교 연산자
| 준랭 | 의미 | 일반적인 표기 |
|---|---|---|
@ | 같나 | == |
!@ | 다르나 | != |
ㅁ | 미만 | < |
ㅊ | 초과 | > |
ㅁ@ | 이하 | <= |
ㅊ@ | 이상 | >= |
비교 연산자의 결과는 항상 오(1, 참) 또는 오?(0, 거짓)입니다.
오@오1 == 1 → 오(참)
오오ㅁ오오오2 < 3 → 오(참)
오오오ㅁ@오오3 <= 2 → 오?(거짓)
!@을 변수와 헷갈리지 마세요
!는 변수 이름으로도 쓰이기 때문에, 다음 두 코드는 완전히 다른 의미입니다.
| 코드 | 해석 |
|---|---|
!@오오 | 변수 1번 == 2 |
!!@오오 | 변수 1번 != 2 |
자세한 규칙은 붙여 쓰기 규칙을 참고하세요.
단항 연산자
피연산자가 하나만 필요한 연산자입니다.
| 준랭 | 의미 | 일반적인 표기 |
|---|---|---|
? | 음수 부호 | - |
! | 논리 부정 (not) | ! |
?오오-2
!오not 1 → 오?(0)
!오?not 0 → 오(1)
!의 이중적 의미
!는 단항 연산자이면서 동시에 변수 이름으로도 쓰입니다. 인터프리터는 문맥에 따라 둘을 구분합니다.
| 코드 | 해석 |
|---|---|
!오 | not 1 (부정 연산자) |
!~오 | 변수 1번 + 1 (변수 이름) |
! 다음에 값이 오면 부정 연산자, 연산자가 오면 변수 이름으로 해석됩니다.
연산자 우선순위
한 식에 여러 연산자가 있을 때, 우선순위가 높은 것부터 계산됩니다.
| 순위 | 연산자 | 설명 |
|---|---|---|
| 1 (가장 높음) | ?, ! | 단항 연산자 |
| 2 | .. | 제곱 |
| 3 | ., # | 곱셈, 나눗셈 |
| 4 | ~ | 덧셈 |
| 5 (가장 낮음) | @, !@, ㅁ, ㅊ, ㅁ@, ㅊ@ | 비교 연산자 |
같은 우선순위의 연산자는 왼쪽에서 오른쪽으로 평가됩니다 (왼쪽 결합).
오~오오.오오오1 + 2 × 3 → 1 + 6 → 오오오오오오오(7)
오오오#오오#오오(3 ÷ 2) ÷ 2 → 0.75
단계별로 따라가 보기
오~오오.오오오 (1 + 2 × 3)
- 곱셈이 덧셈보다 우선순위가 높으므로 먼저 계산
오오.오오오→2 × 3→오오오오오오(6)
- 그다음 덧셈
오~오오오오오오→1 + 6→오오오오오오오(7)
오오..오오오.오오 (2³ × 2)
- 제곱이 곱셈보다 우선순위가 높으므로 먼저 계산
오오..오오오→2³→오오오오오오오오(8)
- 그다음 곱셈
오오오오오오오오.오오→8 × 2→오 오오오오오(16)
TIP
우선순위를 명시적으로 바꾸고 싶다면 준, 서를 사용하세요.
대입 연산자
식의 결과를 변수에 저장할 때 사용합니다.
[식]~준서[변수명]ㅋ[변수명]에 [식]을 대입하는 연산자입니다.
오~준서!ㅋ변수 1번(!)에 오(1)을 대입합니다.
오오오~준서!!ㅋ변수 2번(!!)에 오오오(3)을 대입합니다.
오~오오~준서!!!ㅋ변수 3번(!!!)에 오~오오(1 + 2 = 3)을 대입합니다. 식이 먼저 계산된 후 그 결과가 변수에 저장됩니다.
TIP
변수에 대한 자세한 내용은 변수를 참고하세요.