산술·증감 연산자
선수학습(1개)
요약
산술 연산자(+, -, *, /, %)와 증감 연산자(++, --)를 알아봅니다. 정보처리기사 실기에 자주 출제되는 정수 나눗셈, 나머지 연산, 전위/후위 증감을 C/Java/Python 언어별로 정리합니다.
산술 연산자 쌩기초
산술 연산자는 숫자의 사칙연산과 나머지를 구하는 연산자입니다.
| 연산자 | 이름 | 예시 | 결과 |
|---|---|---|---|
+ | 덧셈 | 5 + 3 | 8 |
- | 뺄셈 | 5 - 3 | 2 |
* | 곱셈 | 5 * 3 | 15 |
/ | 나눗셈 | 5 / 3 | 아래 참고 |
% | 나머지 | 5 % 3 | 2 |
Python에는 위 표의 다섯 연산자 외에 거듭제곱 연산자(**)가 더 있습니다. a ** b는 a를 b번 곱한 값을 돌려줍니다. C와 Java에는 같은 이름의 연산자가 없고, 대신 라이브러리 함수(pow)를 사용합니다.
| 연산 | 결과 | 의미 |
|---|---|---|
2 ** 0 | 1 | 어떤 수의 0제곱은 1 |
2 ** 1 | 2 | 자기 자신 |
2 ** 10 | 1024 | 2를 10번 곱함 |
10 ** 3 | 1000 | 10을 3번 곱함 |
왼쪽 시프트 <<와 관계가 있어서, 2 ** k는 사실 1 << k와 같은 값입니다.
나눗셈 (/)
C언어에서 정수끼리 나누면 소수점이 버려지고 몫만 남습니다.
| 연산 | 결과 | 설명 |
|---|---|---|
10 / 3 | 3 | 정수 / 정수 = 정수 (소수점 버림) |
10.0 / 3 | 3.333... | 실수 / 정수 = 실수 |
10 / 3.0 | 3.333... | 정수 / 실수 = 실수 |
Java에서도 정수끼리 나누면 소수점이 버려지고 몫만 남습니다.
| 연산 | 결과 | 설명 |
|---|---|---|
10 / 3 | 3 | 정수 / 정수 = 정수 (소수점 버림) |
10.0 / 3 | 3.333... | 실수 / 정수 = 실수 |
10 / 3.0 | 3.333... | 정수 / 실수 = 실수 |
Python에서는 /와 // 두 가지 나눗셈 연산자가 있습니다.
| 연산자 | 이름 | 결과 | 예시 |
|---|---|---|---|
/ | 실수 나눗셈 | 항상 실수(float) | 10 / 3 = 3.333... |
// | 정수 나눗셈 | 소수점 버림 | 10 // 3 = 3 |
나머지 연산자 (%)
나머지 연산자 % 는 나눗셈의 나머지를 구합니다. 모듈로(Modulo) 연산이라고도 합니다.
5 % 3은 5를 3으로 나눈 나머지입니다. 5 / 3의 몫은 1이고 나머지가 2이므로 결과는 2입니다.
| 연산 | 몫 (/) | 나머지 (%) |
|---|---|---|
5 / 3, 5 % 3 | 1 | 2 |
10 / 4, 10 % 4 | 2 | 2 |
7 / 10, 7 % 10 | 0 | 7 |
12 / 3, 12 % 3 | 4 | 0 |
나머지 연산 활용
원형 큐에서 배열 끝에 도달하면 처음으로 돌아가는 데 사용됩니다.
증감 연산자 기초
증감 연산자는 변수의 값을 1 증가(++) 하거나 1 감소(--) 시키는 연산자입니다.
| 표현 | 이름 | 동작 |
|---|---|---|
++a | 전위 증가 | 먼저 증가, 그 다음 값 사용 |
a++ | 후위 증가 | 먼저 값 사용, 그 다음 증가 |
--a | 전위 감소 | 먼저 감소, 그 다음 값 사용 |
a-- | 후위 감소 | 먼저 값 사용, 그 다음 감소 |
단독 사용 시 (차이 없음)
증감 연산자를 단독으로 사용하면 전위/후위 모두 결과가 같습니다.
for문의 증감식에서도 결과가 같습니다.
값을 사용할 때 (차이 있음)
증감 결과를 다른 변수에 대입하거나 수식 안에서 사용할 때 전위/후위의 차이가 나타납니다.
| 코드 | 실행 순서 | 변수 값 | 대입 값 |
|---|---|---|---|
a = ++i; (i=5) | 증가 -> 대입 | i = 6 | a = 6 |
b = j++; (j=5) | 대입 -> 증가 | j = 6 | b = 5 |

감소 연산자 (--)
--도 ++과 동일한 규칙으로 동작합니다.
전위/후위 정리
| 코드 | 출력 | 출력 후 x 값 |
|---|---|---|
printf("%d", ++x) (x=10) | 11 | 11 |
printf("%d", x++) (x=11) | 11 | 12 |
증감 연산자는 변수의 값을 1 증가(++) 하거나 1 감소(--) 시키는 연산자입니다.
| 표현 | 이름 | 동작 |
|---|---|---|
++a | 전위 증가 | 먼저 증가, 그 다음 값 사용 |
a++ | 후위 증가 | 먼저 값 사용, 그 다음 증가 |
--a | 전위 감소 | 먼저 감소, 그 다음 값 사용 |
a-- | 후위 감소 | 먼저 값 사용, 그 다음 감소 |
단독 사용 시 (차이 없음)
증감 연산자를 단독으로 사용하면 전위/후위 모두 결과가 같습니다.
for문의 증감식에서도 결과가 같습니다.
값을 사용할 때 (차이 있음)
증감 결과를 다른 변수에 대입하거나 수식 안에서 사용할 때 전위/후위의 차이가 나타납니다.
| 코드 | 실행 순서 | 변수 값 | 대입 값 |
|---|---|---|---|
a = ++i; (i=5) | 증가 -> 대입 | i = 6 | a = 6 |
b = j++; (j=5) | 대입 -> 증가 | j = 6 | b = 5 |
감소 연산자 (--)
--도 ++과 동일한 규칙으로 동작합니다.
전위/후위 정리
| 코드 | 출력 | 출력 후 x 값 |
|---|---|---|
System.out.println(++x) (x=10) | 11 | 11 |
System.out.println(x++) (x=11) | 11 | 12 |
Python에는 ++나 -- 증감 연산자가 없습니다. 대신 +=와 -=를 사용합니다.
| C/Java | Python | 설명 |
|---|---|---|
a++ 또는 ++a | a += 1 | 1 증가 |
a-- 또는 --a | a -= 1 | 1 감소 |