Java 강좌 · 3 / 30
연산자
매일 한 챕터씩 배우는 Java 기초 시리즈
1. 산술 연산자
숫자를 계산하는 데 사용하는 가장 기본적인 연산자입니다. Java의 산술 연산자는 우리가 수학 시간에 배운 것과 거의 동일하게 동작하지만, 정수 나눗셈처럼 Java만의 특성도 있습니다.
| 연산자 | 의미 | 예시 | 결과 |
|---|---|---|---|
+ |
덧셈 | 5 + 2 |
7 |
- |
뺄셈 | 5 - 2 |
3 |
* |
곱셈 | 5 * 2 |
10 |
/ |
나눗셈 | 5 / 2 |
2 (정수) |
% |
나머지 | 5 % 2 |
1 |
int a = 5, b = 2;
System.out.println(a / b); // 2 — 정수끼리 나누면 소수점이 버려짐
System.out.println((double) a / b); // 2.5 — 형변환 후 실수 나눗셈
System.out.println(a % b); // 1 — 나머지
⚠️
int / int는 항상 정수 결과입니다. 소수점이 필요하면 피연산자 중 하나 이상을 double로 형변환하세요.
2. 증감 연산자 (++, --)
변수의 값을 1씩 증가시키거나 감소시킬 때 사용합니다. 전위(prefix)와 후위(postfix) 위치에 따라 연산 시점이 달라집니다.
int x = 5;
System.out.println(x++); // 5 출력 후 x는 6이 됨 (후위: 먼저 사용, 나중에 증가)
System.out.println(++x); // x를 먼저 7로 증가시킨 후 7 출력 (전위: 먼저 증가, 나중에 사용)
int y = 10;
int result = y++ + ++y; // 10 + 12 = 22, y는 최종 12
💡 헷갈릴 때는 한 줄에 하나의 증감 연산만 사용하는 것이 안전하고 가독성도 좋습니다.
3. 비교 연산자
두 값을 비교해 boolean(true/false) 결과를 반환합니다. 조건문, 반복문에서 필수로 사용됩니다.
| 연산자 | 의미 | 예시 |
|---|---|---|
== |
같다 | a == b |
!= |
다르다 | a != b |
> |
크다 | a > b |
< |
작다 | a < b |
>= |
크거나 같다 | a >= b |
<= |
작거나 같다 | a <= b |
String s1 = "hello";
String s2 = "hello";
String s3 = new String("hello");
System.out.println(s1 == s2); // true (문자열 리터럴은 같은 객체 재사용)
System.out.println(s1 == s3); // false (new로 만든 객체는 별개 주소)
System.out.println(s1.equals(s3)); // true (내용 비교는 equals 사용)
⚠️ 참조형(특히
String)의 내용을 비교할 때는 == 대신 반드시 .equals()를
사용하세요. ==는 주소(참조) 비교입니다.4. 논리 연산자
여러 조건을 조합할 때 사용합니다. Java는 단축 평가(short-circuit evaluation)를 지원합니다.
| 연산자 | 의미 | 설명 |
|---|---|---|
&& |
AND | 둘 다 true여야 true, 왼쪽이 false면 오른쪽 평가 안 함 |
|| |
OR | 하나만 true여도 true, 왼쪽이 true면 오른쪽 평가 안 함 |
! |
NOT | true/false를 반전 |
int age = 20;
boolean hasTicket = false;
if (age >= 18 && hasTicket) {
System.out.println("입장 가능");
} else {
System.out.println("입장 불가"); // 출력됨
}
// 단축 평가 예시: 왼쪽이 false이므로 checkTicket()은 호출되지 않음
if (age < 18 && checkTicket()) { ... }
💡 단축 평가 덕분에
obj != null && obj.isValid() 같은 코드에서 NullPointerException을
안전하게 피할 수 있습니다.5. 대입 연산자
값을 변수에 저장하는 연산자로, 산술 연산과 결합된 축약형도 자주 사용됩니다.
int x = 10;
x += 5; // x = x + 5; → 15
x -= 3; // x = x - 3; → 12
x *= 2; // x = x * 2; → 24
x /= 4; // x = x / 4; → 6
x %= 4; // x = x % 4; → 2
6. 삼항 연산자 (조건 연산자)
간단한 if-else를 한 줄로 표현할 수 있는 유일한 삼항(피연산자 3개) 연산자입니다.
조건 ? 참일_때_값 : 거짓일_때_값
int score = 85;
String grade = (score >= 90) ? "A" : (score >= 80) ? "B" : "C";
System.out.println(grade); // B
💡 간단한 조건에는 유용하지만, 너무 여러 개를 중첩하면 가독성이 떨어지므로 주의하세요.
7. 연산자 우선순위
한 식에 여러 연산자가 섞이면 우선순위에 따라 계산 순서가 정해집니다. 대표적인 순서는 다음과 같습니다 (높은 순).
- 증감 연산자
++ -- - 산술 연산자
* / %→+ - - 비교 연산자
< > <= >=→== != - 논리 연산자
&&→|| - 대입 연산자
= += -= ...
int result = 2 + 3 * 4; // 14, 곱셈이 먼저
int check = 2 + 3 > 4 && 1 == 1; // (2+3 > 4) && (1==1) → true
⚠️ 우선순위를 외우기보다 괄호
()를 적극 사용해 의도를 명확히 하는 습관을 들이세요.8. 자주 하는 실수
=와==혼동:if (a = 5)는 대입이지 비교가 아닙니다 (boolean 타입이면 컴파일 오류로 잡힘).- String 비교에
==사용: 항상.equals()를 사용하세요. - 정수 오버플로우:
int연산 결과가 범위를 넘으면 예상치 못한 값이 나옵니다. - 증감 연산자 중복 사용:
y++ + ++y처럼 한 줄에 여러 번 쓰면 가독성이 떨어지고 실수하기 쉽습니다.
오늘의 정리
산술·증감·비교·논리·대입·삼항 연산자와 연산자 우선순위까지 Java의 모든 기본 연산자를 살펴봤습니다. 다음 챕터에서는 이 연산자들을 활용해 프로그램의 흐름을 제어하는 조건문(if, switch)을 배웁니다.
반응형
'Java > Java Course' 카테고리의 다른 글
| Java 변수와 자료형 완벽 정리 (0) | 2026.07.13 |
|---|---|
| Java란 무엇인가 & 개발 환경 설정 (0) | 2026.07.13 |
| Java 기초부터 심화까지 - 30일 완성 무료 Java 강좌 (0) | 2026.07.13 |