변수나 값에 대해 계산, 비교, 논리 연산 등을 수행하는 기호다.
| 종류 | 설명 | 예시 |
|---|---|---|
| 산술 연산자 | 기본 사칙연산, 나머지 | +, -, *, /, % |
| 증감 연산자 | 1씩 증가/감소 | ++, -- |
| 비교 연산자 | 두 값을 비교 | ==, !=, >, <, >=, <= |
| 논리 연산자 | 논리값 비교 (AND, OR, NOT) | &&, ||, ! |
| 대입 연산자 | 값을 변수에 저장 | =, +=, -=, *=, /=, %= |
| 삼항 연산자 | 조건 ? 참 : 거짓 | condition ? a : b |
int a = 5;
int 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끼리 나누면 소수점이 버려짐 (예:5 / 2→2)
+ 연산자를 사용할 수 있다.String result1 = "hello " + "world"; // "hello world"
String result2 = "a + b = " + 10; // "a + b = 10"
숫자와 문자열을 더하면 숫자가 문자열로 변환된다.
자바는 문자열인String타입에 다른 타입을 더하는 경우 대상 타입을 문자열로 변경한다.
쉽게 이야기해서 문자열에 더하는 것은 다 문자열이 된다
int a = 1;
++a; // a = 2
a++; // a = 3
System.out.println(a); // 3
++a: 전위 증가 → 먼저 증가하고 대입a++: 후위 증가 → 먼저 대입하고 나중에 증가int a = 1;
int b = ++a; // a = 2, b = 2
int c = 1;
int d = c++; // c = 2, d = 1
int a = 2;
int b = 3;
System.out.println(a == b); // false
System.out.println(a != b); // true
System.out.println(a < b); // true
System.out.println(a >= b); // false
==이 아닌 .equals()를 사용해야 한다.String s1 = "hello";
String s2 = "hello";
System.out.println(s1.equals(s2)); // true
System.out.println(true && false); // false
System.out.println(true || false); // true
System.out.println(!true); // false
int a = 15;
boolean result = (a > 10) && (a < 20); // true
&&: 둘 다 true여야 true
||: 하나라도 true면 true
!: 반대값 반환
int a = 5;
a += 3; // 8
a -= 2; // 6
a *= 4; // 24
a /= 3; // 8
a %= 5; // 3
복합 대입 연산자는
a = a + 3→a += 3처럼 간결하게 표현 가능.
| 우선순위 | 연산자 | 설명 |
|---|---|---|
| 1 | () | 괄호, 가장 먼저 계산됨 |
| 2 | ++, --, !, ~, +, - (단항) | 단항 연산자 (전위형) |
| 3 | *, /, % | 곱셈, 나눗셈, 나머지 |
| 4 | +, - | 덧셈, 뺄셈 |
| 5 | <<, >>, >>> | 비트 이동 |
| 6 | <, <=, >, >=, instanceof | 비교 연산자 |
| 7 | ==, != | 등가 비교 |
| 8 | & | 비트 AND |
| 9 | ^ | 비트 XOR |
| 10 | | | 비트 OR |
| 11 | && | 논리 AND |
| 12 | || | 논리 OR |
| 13 | ? : | 삼항 연산자 |
| 14 | =, +=, -=, *=, /=, %= 등 | 대입 연산자 |