프로그램은 문장이 작성된 순서대로만 동작하지 않습니다. 연산자 우선순위에 따라 수식의 계산 구조가 달라지고, 조건과 반복, 함수 호출과 점프문에 따라 문장의 실행 흐름도 달라집니다. 이러한 실행 흐름을 결정하고 변경하는 방식을 이해해야 프로그램이 어떤 순서로 계산되고 동작하는지 정확하게 추적할 수 있습니다.
이 장에서는 순서 제어를 묵시적·명시적 제어로 구분하고, 실행 위치를 직접 변경하는 GOTO문의 특징과 한계를 살펴봅니다. 또한 중위·전위·후위 표기법의 구조와 변환 방법, 피연산자 수에 따른 단항·이항 연산자의 차이를 시험에 필요한 기준으로 연결하여 정리합니다.
이 장의 핵심 내용
- 순서 제어는 프로그램의 문장과 연산이 실제로 실행되는 순서를 결정하는 것입니다.
- 묵시적 순서 제어는 프로그래머가 별도로 지시하지 않아도 언어의 규칙에 따라 실행 순서가 결정되는 방식입니다.
- 명시적 순서 제어는 조건문·반복문·점프문과 괄호 등을 이용해 프로그래머가 실행 또는 계산 순서를 직접 지정하는 방식입니다.
- GOTO문은 지정한 레이블로 실행 위치를 옮기는 무조건 분기문입니다.
- GOTO문은 단순하고 직접적인 이동이 가능하지만 남용하면 프로그램의 흐름을 추적하기 어려워집니다.
- 중위 표기법은 연산자를 두 피연산자 사이에 배치하며 사람이 가장 익숙하게 사용하는 표기법입니다.
- 전위 표기법은 연산자를 피연산자 앞에, 후위 표기법은 연산자를 피연산자 뒤에 배치합니다.
- 전위·후위 표기법은 연산자의 위치와 피연산자 수가 분명하므로 괄호 없이도 계산 순서를 표현할 수 있습니다.
- 후위 표기식은 왼쪽에서 오른쪽으로 읽으며 스택을 이용해 계산할 수 있습니다.
- 단항 연산자는 하나의 피연산자에, 이항 연산자는 두 개의 피연산자에 적용됩니다.
- 같은 기호라도 문맥에 따라 단항 또는 이항 연산자가 될 수 있습니다.
순서 제어는 무엇이며 어떻게 구분하는가?
순서 제어(Sequence Control)는 프로그램의 문장, 연산과 함수가 어떤 순서로 실행되는지를 결정하는 것입니다. 별도의 제어가 없다면 문장은 일반적으로 위에서 아래로 순차 실행되지만, 연산자 우선순위나 제어문을 만나면 계산과 실행의 흐름이 달라질 수 있습니다.
| 구분 | 의미 | 대표 수단 | 핵심 특징 |
|---|---|---|---|
| 묵시적 순서 제어 | 프로그래머가 직접 제어를 표현하지 않아도 언어가 정한 규칙에 따라 순서가 결정됨 | 문장의 기본 순차 실행, 연산자 우선순위, 결합 방향, 함수 인수 평가 규칙 | 언어의 문법과 의미 규칙을 알아야 실행 순서를 예측할 수 있음 |
| 명시적 순서 제어 | 프로그래머가 제어 구문이나 표기 방법을 이용해 실행 순서를 직접 지정함 | 조건문, 반복문, GOTO문, 함수 호출·반환, 괄호 | 프로그램의 분기·반복·이동 또는 수식의 계산 순서를 의도적으로 변경함 |
묵시적 제어의 예
'A + B * C'에서는 프로그래머가 별도의 괄호를 사용하지 않아도 곱셈이 덧셈보다 먼저 계산됩니다.
명시적 제어의 예
'(A + B) * C'처럼 괄호를 사용하면 프로그래머가 덧셈을 먼저 계산하도록 순서를 직접 지정합니다.
묵시적 순서 제어는 어떻게 이루어지는가?
묵시적 순서 제어는 소스 코드에 별도의 이동 명령을 작성하지 않아도 프로그래밍 언어의 문법과 의미 규칙에 의해 실행 순서가 결정되는 방식입니다. 문장의 기본 실행 순서와 연산자 우선순위에 따른 수식 계산이 대표적인 예입니다.
result = 2 + 3 * 4;
위 식은 곱셈 연산자의 우선순위가 덧셈보다 높으므로 3 * 4를 먼저 계산한 뒤 2를 더합니다. 프로그래머가 직접 순서를 표시하지 않았지만 언어가 정한 우선순위에 따라 계산 순서가 결정되므로 묵시적 순서 제어에 해당합니다.
| 결정 요소 | 설명 | 예 |
|---|---|---|
| 기본 순차 실행 | 별도의 분기나 반복이 없으면 문장을 위에서 아래로 실행 | 첫 번째 문장 다음에 두 번째 문장 실행 |
| 연산자 우선순위 | 우선순위가 높은 연산자를 먼저 계산 | ‘A + B * C'에서 곱셈 먼저 |
| 결합 방향 | 우선순위가 같은 연산자의 묶이는 방향을 결정 | 대부분의 산술 이항 연산자는 왼쪽부터 결합 |
| 언어별 평가 규칙 | 피연산자·함수 인수·논리식 등의 평가 순서를 언어가 정의 | 단락 평가, 인수 평가 순서 |
우선순위와 실행 순서: 연산자 우선순위는 식이 문법적으로 어떻게 묶이는지를 결정합니다. 피연산자가 실제로 평가되는 순서는 언어별 규칙에 따라 별도로 정해질 수 있으므로 두 개념을 완전히 같은 뜻으로 보지 않습니다.
명시적 순서 제어는 어떻게 이루어지는가?
명시적 순서 제어는 프로그래머가 조건문, 반복문, 점프문과 함수 호출 등을 사용하여 실행 순서를 직접 표현하는 방식입니다. 수식에서는 괄호를 사용해 언어의 기본 우선순위와 다른 계산 순서를 지정할 수 있습니다.
| 제어 수단 | 역할 | 대표 예 |
|---|---|---|
| 선택 제어 | 조건에 따라 실행할 경로를 선택 | if·else, switch |
| 반복 제어 | 조건이나 횟수에 따라 문장을 반복 | for, while, do-while |
| 점프 제어 | 현재 위치에서 다른 위치로 실행 흐름을 이동 | goto, break, continue, return |
| 호출 제어 | 함수·프로시저로 이동한 뒤 호출 지점으로 복귀 | 함수 호출과 반환 |
| 수식의 괄호 | 연산자의 기본 우선순위와 다른 계산 순서를 지정 | (A + B) * C |
제어 범위의 차이: 조건문·반복문·점프문은 프로그램 문장의 실행 흐름을 제어하고, 괄호는 하나의 수식 안에서 연산이 묶이는 순서를 명확하게 지정합니다.
GOTO문은 실행 순서를 어떻게 바꾸는가?
GOTO문은 프로그램의 현재 실행 위치에서 지정한 레이블(Label)로 제어를 즉시 이동시키는 무조건 분기문입니다. 조건 자체를 판단하지 않고 지정된 위치로 이동하므로 저수준의 직접적인 순서 제어 방식에 해당합니다.
count = 0;
start:
count = count + 1;
if (count < 3)
goto start;
위 예에서는 조건문이 count < 3인지 판단하고, 조건이 참이면 GOTO문이 start 레이블로 실행 위치를 옮깁니다. GOTO문 자체는 무조건 분기이지만 조건문과 결합하면 조건부 반복과 유사한 흐름을 만들 수 있습니다.
| 특징 | 설명 |
|---|---|
| 비구조적 제어 | 블록 구조와 관계없이 레이블이 있는 위치로 실행 흐름을 이동할 수 있음 |
| 무조건 분기 | GOTO문이 실행되면 별도의 복귀 절차 없이 지정 위치로 이동 |
| 직접적인 흐름 변경 | 현재 실행 순서를 앞이나 뒤의 다른 위치로 바꿀 수 있음 |
| 레이블 사용 | 이동할 목적지를 식별하기 위한 이름이 필요함 |
| 언어별 지원 차이 | 일부 언어는 GOTO문을 지원하고 일부 언어는 제한하거나 제공하지 않음 |
GOTO문의 장점
- 실행 흐름을 특정 위치로 직접 이동할 수 있습니다.
- 단순한 저수준 제어나 여러 단계의 중첩 구조를 빠져나오는 일부 상황에서 간결할 수 있습니다.
- 규모가 작고 흐름이 제한된 코드에서는 동작을 직접 표현하기 쉽습니다.
- 초기 FORTRAN과 일부 저수준 코드에서 널리 사용된 전통적인 제어 방식입니다.
GOTO문의 단점
- 문장 순서와 실제 실행 순서가 복잡하게 얽힐 수 있습니다.
- 제어 흐름을 따라가기 어려워 가독성이 낮아집니다.
- 오류 발생 경로를 추적하기 어려워 시험과 디버깅이 복잡해집니다.
- 코드 변경의 영향 범위를 예측하기 어려워 유지보수성이 낮아질 수 있습니다.
- 순차·선택·반복으로 구성하는 구조적 프로그램 작성이 어려워질 수 있습니다.
중위·전위·후위 표기법은 어떻게 다른가?
수식의 표기법은 연산자가 피연산자의 어느 위치에 놓이는지를 기준으로 중위·전위·후위 표기법으로 구분합니다. 연산자와 피연산자의 상대적 위치가 달라질 뿐 세 표기법은 같은 계산 구조를 나타낼 수 있습니다.
| 표기법 | 연산자 위치 | 기본 형태 | 예 | 특징 |
|---|---|---|---|---|
| 중위 표기법 Infix | 두 피연산자 사이 | A + B | A + B * C | 사람에게 익숙하지만 우선순위와 괄호 규칙이 필요함 |
| 전위 표기법 Prefix | 피연산자 앞 | + A B | + A * B C | 폴란드 표기법이라고 하며 연산자의 피연산자 수를 알면 괄호가 필요 없음 |
| 후위 표기법 Postfix | 피연산자 뒤 | A B + | A B C * + | 역폴란드 표기법이라고 하며 스택을 이용한 계산에 적합함 |
A + B * C / + A * B C / A B C * +'는 모두 같은 계산 구조를 나타냅니다.중위 표기법
연산자를 피연산자 사이에 쓰므로 사람이 읽기 쉽습니다. 다만 ‘A + B * C'처럼 연산자가 여러 개이면 우선순위와 결합 방향을 알아야 합니다.
전위·후위 표기법
연산자와 피연산자의 배치만으로 계산 구조가 표현됩니다. 연산자의 피연산자 수가 정해져 있으면 별도의 우선순위나 괄호 없이 해석할 수 있습니다.
용어 구분: 수식의 전위·후위 표기법과 ‘++A·A++‘처럼 증감 연산자가 앞뒤에 놓이는 전위·후위 증감 연산은 서로 다른 개념입니다.
중위 표기법은 전위·후위 표기법으로 어떻게 변환하는가?
기본 변환 방법은 연산자의 우선순위에 따라 식을 괄호로 묶고, 각 연산자를 해당 괄호의 앞이나 뒤로 이동한 다음 불필요한 괄호를 제거하는 방식입니다. 연산 구조를 먼저 분명하게 만든 뒤 연산자의 위치를 옮기는 것이 핵심입니다.
중위 표기법을 전위 표기법으로 변환하기
| 단계 | 처리 | 결과 |
|---|---|---|
| 원래 식 | 중위 표기식 확인 | A + B * C |
| 1 | 우선순위에 따라 괄호로 묶기 | (A + (B * C)) |
| 2 | 각 연산자를 해당 두 피연산자의 앞으로 이동 | (+ A (* B C)) |
| 3 | 불필요한 괄호 제거 | + A * B C |
중위 표기법을 후위 표기법으로 변환하기
| 단계 | 처리 | 결과 |
|---|---|---|
| 원래 식 | 중위 표기식 확인 | A + B * C |
| 1 | 우선순위에 따라 괄호로 묶기 | (A + (B * C)) |
| 2 | 각 연산자를 해당 두 피연산자의 뒤로 이동 | (A (B C *) +) |
| 3 | 불필요한 괄호 제거 | A B C * + |
전위·후위 표기법은 중위 표기법으로 어떻게 되돌리는가?
전위 표기식은 오른쪽에서 왼쪽으로, 후위 표기식은 왼쪽에서 오른쪽으로 읽으면서 피연산자를 스택에 저장합니다. 이항 연산자를 만나면 두 식을 꺼내 중위식으로 묶은 뒤 다시 스택에 넣습니다.
후위 표기식 A B C * + D - 변환하기
후위 표기식은 왼쪽에서 오른쪽으로 읽으면서 피연산자를 스택에 저장합니다. 이항 연산자를 만나면 스택에서 후입선출 방식으로 두 식을 꺼내는데, 먼저 꺼낸 식이 오른쪽 피연산자이고 다음에 꺼낸 식이 왼쪽 피연산자입니다.
| 읽은 기호 | 처리 | 스택의 식 |
|---|---|---|
A | 피연산자를 스택에 저장 | A |
B | 피연산자를 스택에 저장 | A, B |
C | 피연산자를 스택에 저장 | A, B, C |
* | B와 C를 꺼내 (B * C) 생성 | A, (B * C) |
+ | A와 (B * C)를 꺼내 (A + (B * C)) 생성 | (A + (B * C)) |
D | 피연산자를 스택에 저장 | (A + (B * C)), D |
- | 두 식을 꺼내 ((A + (B * C)) - D) 생성 | ((A + (B * C)) - D) |
A + B * C - D이며 계산 구조는 ((A + (B * C)) - D)입니다.후위식의 피연산자 순서: 후위 표기식을 왼쪽에서 오른쪽으로 읽을 때 이항 연산자를 만나면, 먼저 꺼낸 값이 오른쪽 피연산자이고, 그다음 꺼낸 값이 왼쪽 피연산자입니다. 뺄셈과 나눗셈에서는 순서를 바꾸면 결과가 달라지므로 특히 주의합니다.
전위 표기식 - + A * B C D 변환하기
전위 표기식은 오른쪽에서 왼쪽으로 읽으면서 피연산자를 스택에 저장합니다. 이항 연산자를 만나면 스택에서 두 식을 꺼내는데, 먼저 꺼낸 식이 왼쪽 피연산자이고 다음에 꺼낸 식이 오른쪽 피연산자입니다.
| 읽은 기호 | 처리 | 스택의 식 (아래 → 위) |
|---|---|---|
D | 피연산자를 스택에 저장 | D |
C | 피연산자를 스택에 저장 | D, C |
B | 피연산자를 스택에 저장 | D, C, B |
* | B와 C를 꺼내 (B * C) 생성 | D, (B * C) |
A | 피연산자를 스택에 저장 | D, (B * C), A |
+ | A와 (B * C)를 꺼내 (A + (B * C)) 생성 | D, (A + (B * C)) |
- | (A + (B * C))와 D를 꺼내 ((A + (B * C)) - D) 생성 | ((A + (B * C)) - D) |
A + B * C - D이며 계산 구조는 ((A + (B * C)) - D)입니다.전위식의 피연산자 순서: 전위 표기식을 오른쪽에서 왼쪽으로 읽을 때 이항 연산자를 만나면, 스택에서 먼저 꺼낸 값이 왼쪽 피연산자이고 다음에 꺼낸 값이 오른쪽 피연산자입니다. 뺄셈과 나눗셈에서는 순서를 바꾸지 않도록 주의합니다.
전위·후위 표기식은 어떻게 계산하는가?
| 구분 | 읽는 방향 | 피연산자 처리 | 연산자 처리 |
|---|---|---|---|
| 전위 표기식 | 오른쪽 → 왼쪽 | 피연산자를 스택에 저장 | 필요한 수의 피연산자를 꺼내 연산한 뒤 결과를 다시 저장 |
| 후위 표기식 | 왼쪽 → 오른쪽 | 피연산자를 스택에 저장 | 필요한 수의 피연산자를 꺼내 연산한 뒤 결과를 다시 저장 |
전위식 예
+ 2 * 3 4는 오른쪽부터 읽어 3 * 4를 계산하고 그 결과에 2를 더하므로 값은 14입니다.
후위식 예
2 3 4 * +는 왼쪽부터 읽어 3 * 4를 계산하고 그 결과에 2를 더하므로 값은 14입니다.
단항 연산자와 이항 연산자는 무엇으로 구분하는가?
연산자는 연산에 필요한 피연산자의 수에 따라 구분할 수 있습니다. 단항 연산자(Unary Operator)는 하나의 피연산자를 사용하고, 이항 연산자(Binary Operator)는 두 개의 피연산자를 사용합니다.
| 구분 | 피연산자 수 | 대표 연산 | 예 |
|---|---|---|---|
| 단항 연산 Unary | 1개 | 논리 부정, 비트 보수, 부호 변경, 증가·감소 | !A, ~A, -A, ++A, NOT(COMPLEMENT), SHIFT, MOVE, ROTATE 등 |
| 이항 연산 Binary | 2개 | 산술, 비교, 논리, 비트, 대입 연산 | A + B, A > B, A && B, AND, OR, XOR 등 |
-A // A 하나에 적용되는 단항 마이너스
A - B // A와 B 두 값에 적용되는 이항 뺄셈
!ready // 하나의 논리값을 반전하는 단항 연산
left && right // 두 논리값을 결합하는 이항 연산
표현 보완: NOT(COMPLEMENT)·SHIFT·MOVE·ROTATE 등이 단항 연산의 예로 제시됩니다. 이는 하나의 입력값을 대상으로 하는 하드웨어·명령어 관점의 분류입니다. 실제 프로그래밍 언어에서는 시프트 연산이 이동할 값과 이동량이라는 두 피연산자를 요구하여 이항 연산자로 정의되는 경우가 많습니다.
순서 제어와 수식 표기법은 어떻게 연결되는가?
순서 제어는 프로그램 문장의 이동뿐 아니라 하나의 수식이 어떤 계산 구조를 갖는지도 포함합니다. 중위 표기법에서는 우선순위와 괄호가 계산 순서를 결정하지만, 전위·후위 표기법에서는 연산자의 위치가 계산 구조를 직접 나타냅니다.
| 대상 | 순서를 결정하는 방법 | 예 |
|---|---|---|
| 프로그램 문장 | 기본 순차 실행, 조건문·반복문·GOTO문·함수 호출 | 조건에 따라 다른 문장 실행 |
| 중위 수식 | 연산자 우선순위·결합 방향·괄호 | (A + B) * C |
| 전위 수식 | 연산자가 앞에 놓인 구조와 피연산자 수 | * + A B C |
| 후위 수식 | 연산자가 뒤에 놓인 구조와 피연산자 수 | A B + C * |
시험에서 자주 혼동되는 개념
묵시적 제어와 명시적 제어
묵시적 제어는 언어 규칙이 자동으로 순서를 결정하고, 명시적 제어는 프로그래머가 제어문이나 괄호로 순서를 직접 지정합니다.
GOTO문과 조건문
GOTO문 자체는 지정 위치로 무조건 이동하고, 조건문은 조건의 참·거짓에 따라 실행 경로를 선택합니다. 두 문장을 결합하면 조건부 이동을 만들 수 있습니다.
중위와 전위 표기법
중위 표기법은 연산자를 피연산자 사이에 놓고, 전위 표기법은 연산자를 피연산자 앞에 놓습니다.
전위와 후위 표기법
전위 표기법은 연산자를 앞에, 후위 표기법은 연산자를 뒤에 놓습니다. 둘 다 연산자의 피연산자 수를 알면 괄호 없이 해석할 수 있습니다.
후위 표기식의 피연산자 순서
이항 연산자를 만나면 먼저 꺼낸 값이 오른쪽 피연산자, 그다음 꺼낸 값이 왼쪽 피연산자입니다.
단항과 이항 연산자
단항 연산자는 한 피연산자에, 이항 연산자는 두 피연산자에 적용됩니다. 같은 - 기호도 문맥에 따라 두 종류가 될 수 있습니다.
전위 표기법과 전위 증감
+ A B의 전위 표기법은 수식 전체의 연산자 배치를 말하고, ++A의 전위 증감은 하나의 변수에 적용되는 단항 연산입니다.
우선순위와 괄호
우선순위는 언어가 묵시적으로 정한 규칙이고, 괄호는 프로그래머가 계산 구조를 명시적으로 지정하는 수단입니다.
이번 장 핵심 요약
- 순서 제어는 프로그램의 문장과 연산이 실행되는 순서를 결정하는 것입니다.
- 묵시적 순서 제어는 프로그래머의 직접 지시 없이 언어 규칙에 따라 이루어집니다.
- 연산자 우선순위에 따른 수식 계산은 묵시적 순서 제어의 대표적인 예입니다.
- 명시적 순서 제어는 조건문·반복문·점프문·함수 호출과 괄호 등을 이용합니다.
- GOTO문은 지정한 레이블로 실행 위치를 이동하는 무조건 분기문입니다.
- GOTO문은 직접적인 흐름 제어가 가능하지만 남용하면 가독성과 유지보수성이 낮아집니다.
- 중위 표기법은 연산자를 두 피연산자 사이에 배치합니다.
- 전위 표기법은 연산자를 피연산자 앞에 배치하며 폴란드 표기법이라고도 합니다.
- 후위 표기법은 연산자를 피연산자 뒤에 배치하며 역폴란드 표기법이라고도 합니다.
- 전위·후위 표기법은 연산자의 피연산자 수가 정해져 있으면 괄호 없이 해석할 수 있습니다.
A+B*C의 전위 표기식은+A*BC입니다.A+B*C의 후위 표기식은ABC*+입니다.- 중위식을 전위·후위식으로 바꿀 때는 먼저 우선순위에 따라 괄호로 계산 구조를 확정합니다.
- 후위 표기식은 왼쪽에서 오른쪽으로 읽고 스택을 이용해 계산합니다.
- 전위 표기식은 오른쪽에서 왼쪽으로 읽고 스택을 이용해 계산할 수 있습니다.
- 후위식에서 이항 연산자를 만나면 먼저 꺼낸 값이 오른쪽 피연산자입니다.
ABC*+D-의 중위 표기식은A+B*C-D입니다.- 단항 연산자는 하나의 피연산자에 적용됩니다.
- 이항 연산자는 두 개의 피연산자에 적용됩니다.
- 같은 기호도
-A에서는 단항,A-B에서는 이항 연산자가 될 수 있습니다.
복습 문제
프로그래머가 직접 제어를 표현하지 않아도 언어의 규칙에 따라 이루어지는 순서 제어는?
묵시적 순서 제어입니다.
프로그래머가 제어문이나 괄호로 실행 또는 계산 순서를 직접 지정하는 방식은?
명시적 순서 제어입니다.
연산자 우선순위에 따라 수식의 계산 순서가 결정되는 것은 묵시적·명시적 제어 중 어느 것인가?
묵시적 순서 제어입니다.
지정한 레이블로 실행 위치를 직접 옮기는 무조건 분기문은?
GOTO문입니다.
GOTO문을 지나치게 사용할 때 발생하는 대표적인 문제는?
제어 흐름이 복잡해져 가독성·디버깅·유지보수가 어려워집니다.
연산 기호가 두 피연산자 사이에 놓이는 표기법은?
중위 표기법입니다.
연산 기호가 피연산자 앞에 놓이는 표기법은?
전위 표기법입니다.
연산 기호가 피연산자 뒤에 놓이며 스택 계산에 적합한 표기법은?
후위 표기법입니다.
중위 표기식 A+B*C를 전위 표기법으로 바꾸면?
+A*BC입니다.
중위 표기식 A+B*C를 후위 표기법으로 바꾸면?
ABC*+입니다.
후위 표기식 ABC*+D-를 중위 표기법으로 바꾸면?
A+B*C-D입니다.
후위 표기식에서 이항 연산자를 만났을 때 먼저 스택에서 꺼낸 값은 어느 쪽 피연산자인가?
오른쪽 피연산자입니다.
하나의 피연산자를 사용하는 연산은?
단항 연산입니다.
두 개의 피연산자를 사용하는 연산은?
이항 연산입니다.
OR, AND, XOR는 일반적으로 단항·이항 연산 중 어느 것인가?
두 피연산자를 사용하는 이항 연산입니다.
NOT는 일반적으로 단항·이항 연산 중 어느 것인가?
하나의 피연산자를 사용하는 단항 연산입니다.
참고자료
- 학습 범위 — 사무자동화산업기사 제2과목 프로그래밍 일반, 순서 제어·수식의 표기법
- Q-Net — 사무자동화산업기사 종목별 상세정보
- IBM Open XL C/C++ — The goto statement
- Microsoft C Language Reference — goto and Labeled Statements
- Oracle Java Language Specification — Expressions and Operators
- Python 공식 문서 — Expressions and Operator Precedence
이 글은 사무자동화산업기사 제2과목 프로그래밍 일반의 묵시적·명시적 순서 제어, GOTO문, 중위·전위·후위 표기법과 단항·이항 연산자를 이해하고 복습할 수 있도록 재구성한 정리입니다. GOTO문의 지원 범위, 연산자 우선순위, 평가 순서와 연산자의 피연산자 수는 프로그래밍 언어 및 명령어 체계에 따라 달라질 수 있으므로 최신 출제기준과 사용하는 언어의 공식 명세를 함께 확인해야 합니다.