-
[무작정 기록] 연산자IT/JAVA 2025. 3. 11. 12:55
연산자(Operators)
- 산술연산자(Arithmetic Operators)
: 말 그래도 숫자를 계산하는 연산자.
연산자 설명 예제 (a = 10, b = 3) + 덧셈 System.out.println(a + b); // 13 - 뺄셈 System.out.println(a - b); // 7 * 곱셈 System.out.println(a * b); // 30 / 나눗셈(몫) System.out.println(a / b); // 3 (정수 연산) % 나머지 System.out.println(a % b); // 1 (나머지)
- 대입연산자(Assignment Operators)
: 값을 변수에 할당하는 연산자.
- 복합치환연산자(Compound Assignment Operators)
: 산술연산자와 대입 연산자를 함께 사용하는 연산자.
즉 변수자신에 어떠한 연산을 하여 다시 변수자신에 저장하는 연산자
대입 분류 연산자 설명 예제 (a = 10) 결과 대입 = 대입 a = 5 a = 5 복합 치환 대입 += 덧셈 후 대입 a += 3 a = 13 복합 치환 대입 -= 뺄셈 후 대입 a -= 2 a = 8 복합 치환 대입 *= 곱셈 후 대입 a *= 4 a = 40 복합 치환 대입 /= 나눗셈 후 대입 a /= 2 a = 5 복합 치환 대입 %= 나머지 후 대입 a %= 3 a = 1 복합 치환 대입 >>= 오른쪽 이동 후 대입 a >>= 2 a = 2 복합 치환 대입 <<= 왼쪽 이동 후 대입 a <<= 2 a = 40
- 비교연산자(Relational Operators)
: 비교연산자는 결과의 값이 boolean 이 제공하는 값인 'true', 'false'로 받을 수 있다.
즉 boolean 타입의 결과가 제공된다.
(String에 'true', 'false'를 넣으면 텍스트로 인식한다.)연산자 설명 예제 (a = 1, b = 2) 결과 == 같음 a == b false != 다름 a != b true > 크다 a > b false < 작다 a < b true >= 크거나 같다 a >= b false <= 작거나 같다 a <= b true
- 논리연산자(Logical Operators)
: 여러개의 조건을 조합하여 참(true) 또는 거짓(false)을 반환한다.
즉 비교연산자처럼 조건을 평가하는데 사용되지만, 그 사용 목적과 결과값의 타입이 다르다.
조건문에 자주 사용된다.
연산자 의미 설명 예제 (a = 1, b = 2) 결과 && (*) 논리 AND 연산자의 단축평가 둘다 true 일때 true
(둘 중 하나만 false 여도 false,
첫번째 값이 false 이면 바로 false)a && b false ! 논리 NOT 값을 반대로 변환
( 즉 ~가 아닐경우 )1. !a 혹은 !b
2. !(a != 0)1. error, 형이 int이기 때문에
2. false|| (*) 논리 OR 연산자의 단축평가 하나만 true 여도 true
(둘 중 하나만 true 여도 true,
첫번째 값이 true 이면 바로 true)1. a || b
2. (a != 0) || (b != 0)1. error, 형이 int이기 때문에
2. true(*) 단축평가 (Short-Circut Evalution) : 불필요한 연산을 수행하지 않고 결과를 결정하는 최적화 기법
※ Short-Circut Evalution 와 Short Cut operation의 차이
Short-Circut Evalution은 하나의 기법으로 Short Cut operation의 한 부분이다.
즉 "is-a" 관계이다.
- 비트연산자(Bitwise Operators)
: 정수형(int, long 등)의 개별 비트를 대상으로 연산
- 비트이동연산자(Bitwise Shift Operators)
: 이진수로 표현된 숫자에서 비트의 위치를 왼쪽 또는 오른쪽으로 이동시키는 연산자.
비트분류 연산자 의미 설명 예제 (a = 1, b = 2) 결과 비트 & 비트 AND 두 비트가 모두 1일때만 1을 반환
(다르면 0을 반환)a & b 0 비트 | 비트 OR 연산자 하나라도 1이면 1을 반환 a | b 3 비트 ^ 비트 차 두 비트가 다르면 1, 같으면 0을 반환 a ^ b 3 비트 ~ 비트 반전 모든 비트의 반전 (1의 보수) ~a, ~ b -2, -3 비트이동 << 왼쪽 시프트 비트를 왼쪽 으로 (n칸만큼)이동 a << b 4 비트이동 >> 오른쪽 시프트 비트를 오른쪽으로 (n칸만큼) 이동 a >> b 0 비트이동 >>> 부호없는 오른쪽 시프트 비트를 오른쪽으로 이동하고 0으로 채움 a >>> b 0 * 비트 논리결과 표
예시값 결과값 X Y & ( 비트 AND ) | ( 비트 OR ) ^ ( 비트 차 ) 0 0 0 0 0 0 1 0 1 1 1 0 0 1 1 1 1 1 1 0
- 삼항연산자(Ternary Operators) 혹은 조건식연산자
: 간단한 조건문을 한줄로 표현 할 수 있게 해주는 연산자.
if else문을 한줄로 줄여 놓은것.
하지만 너무 복잡하면 if-else 를 이용하는게 더 가독성이 좋댜.
연산자 구조 설명 예제 (a = 1, b = 2) 결과 ( 항1 )? 항2: 항3 ( 항1 ) 자리에는 조건식이 온다.
(즉 무엇이 올것인지)
(만약 항1이 참이라면 항2를 수행, 그렇지 않으면 항3을 동작)
항2, 항3 자리에는 변수가 올 수도 있고 수식이 올 수도 있다.
(하지만 System.out.println 같은 명령문은 안된다.)
(하지만 System.out.println 안에 삼항연산자를 직접 입력 할 수 있다.)a < b ? a : b (true) 1 반환
- instanceof연산자(instanceof Operators)
: 객체가 특정 클래스 또는 그 자식 클래스의 인스턴스인지 확인하는데 사용
연산자 구조 설명 예제 (a = 1, b = 2) 결과 객체 instanceof 클래스 객체가 해당 클래스 또는 상복받은 클래스의 인스턴스이면 true, 아니면 false 반환 a instanceof b error -> 컴파일 오류
instanceof는 참조형(객체)에서만
사용가능하다.
! 기본형(int, double, char)등에서는
instanceof를 사용할 수 없다.! 올바른 사용법 ! 1. Integer(객체)로 변환하여 사용 Integer a = 1;
a instanceof Integer;true 2. 클래스 또는 인터페이스 활용 class Animal{}
class Dog extends Animal{}
Animal a = new.dog();
a instanceog Dog;
a instanceog Animal;-> true
-> true
- 증감연산자(increment & Decrement Operators)
: 변수의 값을 1씩 증가 혹은 감소 시키는 연산자.
연산자 의미 설명 예제 (a = 1, b = 2) 결과 ++N 전위 증가 연산자(Pre-increment) 먼저 1 증가, 그 후 연산 수행 ++a
a2
2N++ 후위 증가 연산자(Post-increment) 연산 후 1 증가 b++
b1
2--N 전위 증가 연산자(Pre- decrement) 먼저 1 감소, 그 후 연산 수행 --a
a0
0N-- 후위 증가 연산자(Post-decrement) 연산 후 1 감소 b--
b1
0반응형'IT > JAVA' 카테고리의 다른 글
[무작정 기록] 배열 (0) 2025.04.11 [무작정 기록] 제어문(선택문/반복문/기타) (0) 2025.03.14 [무작정 기록] 데이터 타입 (1) 2025.03.07 [무작정 기록] JAVA용어 정리 (0) 2025.03.07 [무작정 기록] 자바란? (0) 2025.02.12