Java/강의
[📃 자바 입문] 연산자
가지코딩
2025. 4. 30. 14:32
연산자와 연산식
연산: 데이터를 처리하여 결과를 산출하는 것
x = y + z;
- 연산자(Operations): 연산에 사용되는 표시나 기호 (+, -, *, /, &, =, ...)
- 피연산자(Operand): 연산 대상이 되는 데이터 (리터럴, 변수)
- 연산식(Expressions): 연산자와 피연산자를 이용하여 연산의 과정을 기술한 것
연산자의 종류
- 부호 연산자
- 값의 부호를 나타내는 단항 연산자
- + (양수 부호), - (음수 부호)
- 증감 연산자
- 변수의 값을 1씩 증가하거나 감소시킴
- ++ (증가), -- (감소)
- 전위: ++a, 값을 먼저 증가시키고 그 값을 사용
- 후위: a++, 현재값을 먼저 사용하고, 그 후 증가
- 산술 연산자
- + (덧셈), - (뺄셈), * (곱셈), / (나눗셈), % (나머지)
- 비교 연산자
- 두 값을 비교하여 boolean 타입 결과를 반환한다.
- == (같다), != (다르다), < (작다), > (크다), <= (작거나 같다), >= (크거나 같다)
- 대입 연산자
- 변수에 값을 할당(대입)할 때 사용하는 연산자
- 기본 대입 연산자: = (대입)
- 복합 대입 연산자: += (더한 값을 대입), -= (뺀값을 대입), *= (곱한 값을 대입), /= (나눈 값을 대입), %= (나머지를 대입)
- 논리 연산자
- boolean 값(참/거짓)을 가지고 논리적인 판단을 내리는 데 사용하는 연산자
- && (논리 AND): 피연산자가 모두 true면 true
- || (논리 OR): 피연산자 중 하나라도 true 면 true
- ! (논리 NOT): true → false, false → true
- ^ (논리 XOR): 두값이 다를 때만 true
- 비트 연산자
- 정수형 값(int, long 등)을 이진수 단위로 직접 조작할 때 사용하는 연산자, 논리 연산자와는 달리 boolean이 아닌 정수형 숫자에 사용한다.
- & (비트 AND), | (비트 OR), ^ (비트 XOR), ~ (비트 NOT), << (왼쪽 시프트), >> (오른쪽 시프트), >>> (오른쪽 시프트(0채움))
- 삼항 연산자
- 조건에 따라 값을 선택하는 연산자, if-else의 축약 버전
- 조건식 ? 참일 때 값 : 거짓일 때 값;
연산자 우선순위
[실습]
산술 연산자
// i와 j의 합
i + j;
// i와 j의 차
i - j;
// i와 j의 곱
i * j;
// i를 j로 나눈 몫
i / j;
// i를 j로 나눈 나머지
i % j;
비교 연산자
int i = 10;
int j = 10;
// i와 j가 같은지 비교하는 연산자
System.out.println(i == j ); // true
// i와 j가 다른지 비교하는 연산자
System.out.println(i != j ); // false
// i가 j보다 작은지 비교하는 연산자
System.out.println(i < j); // false
// i가 j보다 작거나 같은지 비교하는 연산자
System.out.println( i <= j); // true
// i가 j보다 큰지 비교하는 연산자
System.out.println(i > j); // false
// i가 j보다 크거나 같은지 비교하는 연산자
System.out.println(i >= j); // true
대입 연산자
int i = 10;
i += 10; // i = i + 10; 과 같은 의미
System.out.println(i); // 20
System.out.println(i -=5); // 15
System.out.println(i); // 15
논리 연산자
boolean a = true;
boolean b = false;
System.out.println(a && b); // false : 둘 다 true여야 true
System.out.println(a || b); // true : 하나라도 true면 true
System.out.println(!a); // false : a가 true니까, 반대로 false
System.out.println(a ^ b); // true : 둘이 다르므로 true
비트 연산자
int a = 5; // 0101
int b = 3; // 0011
System.out.println(a & b); // 1
System.out.println(a | b); // 7
System.out.println(a ^ b); // 6
System.out.println(~a); // -6 (2의 보수 방식)
System.out.println(a << 1); // 10
System.out.println(a >> 1); // 2
삼항 연산자
String ampm = hour < 12 ? "오전" : "오후";