자바에서 연산자는 데이터를 계산하거나 비교, 대입하는 데 사용되는 기호이다. 단순한 산술 계산뿐만 아니라, 조건 처리, 반복 제어, 문자열 연결 등 모든 프로그램의 핵심 로직에 연산자가 들어간다. 이번 글에서는 반드시 알아야 하는 연산자들을 정리해보겠다.
연산자 기본 개념
- 연산자(Operator): 연산을 수행하는 기호 (+, , , /, ==, && 등)
- 피연산자(Operand): 연산의 대상 (예: 3 + 4에서 3, 4)
주요 연산자 종류
- 산술 연산자: +, -, *, /, %
- 증감 연산자: ++, --
- 비교 연산자: ==, !=, >, <, >=, <=
- 논리 연산자: &&, ||, !
- 대입 연산자: =, +=, -=, *=, /=, %=
- 삼항 연산자: (조건) ? (값1) : (값2)
산술 연산자
int a = 5, b = 2;
System.out.println(a + b); // 7
System.out.println(a - b); // 3
System.out.println(a * b); // 10
System.out.println(a / b); // 2 (정수 나눗셈 → 소수점 버림)
System.out.println(a % b); // 1 (나머지)
주의: int끼리 나누면 결과도 int → 5 / 2 = 2
(소수점까지 계산하려면 double을 사용해야 한다.)
double x = 5.0 / 2;
System.out.println(x); // 2.5
- 숫자는 0으로 나눌 수 없다.
- 예외가 발생하면 해당 시점 이후의 결과가 출력되지 않고 프로그램이 종료된다.
Exception in thread "main" java.lang.ArithmeticException: / by zero
문자열 더하기
자바에서 +는 숫자뿐만 아니라 문자열에도 사용 가능하다.
System.out.println("hello " + "world"); // hello world
System.out.println("a + b = " + 10); // a + b = 10
문자열 + 숫자 → 숫자가 문자열로 변환된다.
연산자 우선순위
수학과 동일하게 곱셈(*), 나눗셈(/)이 덧셈(+), 뺄셈(-)보다 우선이다.
int sum1 = 1 + 2 * 3; // 7
int sum2 = (1 + 2) * 3; // 9
원칙
- 상식적인 수학 우선순위만 기억하면 충분하다.
- 애매하면 괄호 ()를 사용해서 명확하게 작성하는 것이 가독성↑ 유지보수성↑
증감 연산자
- ++a : 먼저 증가 후 연산 (전위(Prefix) 증감 연산자)
- a++ : 연산 후 증가 (후위(Postfix) 증감 연산자)
int a = 1, b;
b = ++a; // a=2, b=2 (먼저 증가)
b = a++; // a=2, b=1 (먼저 대입 후 증가)
// 대입 연산자보다 증감 연산자가 먼저 반영됐다고 생각하면 이해하기 쉬울 수도 있다.
단독 사용 시에는 전위/후위 차이 없음 (a++; ++a; 둘 다 +1).
비교 연산자
int a = 2, b = 3;
System.out.println(a == b); // false
System.out.println(a != b); // true
System.out.println(a > b); // false
System.out.println(a < b); // true
문자열 비교
- 문자열이 같은지 비교할 때는 ==이 아니라 .equals() 메서드를 사용한다.
- ==를 사용해도 성공할 때가 있지만, 실패할 때도 있다.
- ==는 주소값이 같은지를 비교하기 때문이다.
String s1 = "hello";
String s2 = new String("hello");
System.out.println(s1 == s2); // false (참조 비교)
System.out.println(s1.equals(s2)); // true (값 비교)
문자열은 반드시 .equals() 사용!
논리 연산자
boolean a = true, b = false;
System.out.println(a && b); // false
System.out.println(a || b); // true
System.out.println(!a); // false
- 활용 예시
int score = 85;
boolean result = score >= 80 && score <= 100;
System.out.println(result); // true
대입 연산자
- 기본 대입: =
- 복합(축약) 대입: +=, -=, *=, /=, %=
int a = 5;
a += 3; // 8
a *= 2; // 16
정리하자면...
- 산술 연산자: +, -, *, /, %
- 증감 연산자: ++, --
- 비교 연산자: ==, !=, >, <, >=, <=
- 논리 연산자: &&, ||, !
- 대입 연산자: =, +=, -= 등
- 삼항 연산자(? :), instanceof, 배열 접근([]), 객체 멤버 접근(.)도 자주 사용된다.
- 비트 연산자(&, |, ^, ~)는 실무에서 잘 안 쓰이지만, 알고리즘 문제에서는 가끔 등장한다.
핵심은 가독성이다. 연산자 우선순위를 억지로 외우기보다는, 괄호를 써서 의도를 명확히 드러내자.
'java' 카테고리의 다른 글
| Java 스코프(Scope)와 형변환(Type Casting) 정리 (0) | 2025.09.09 |
|---|---|
| Java 반복문(Loop) 정리 (0) | 2025.09.09 |
| Java 조건문(Conditional Statements) 정리 (0) | 2025.09.09 |
| Java 변수(Variable) 정리 (0) | 2025.09.08 |
| Java 기초부터 실행 원리까지 (0) | 2025.09.08 |