티스토리 뷰

📌 연산자(Operator)
연산을 수행하는 기호를 말한다. 사칙 연산자뿐만 아니라 다양한 연산자가 존재한다.
1. 연산자와 피 연산자
✔ 연산자 : 연산을 수행하는 기호 (+, -, *, / 등)
✔ 피연산자 : 연산을 수행하기 위해서는 반드시 연산의 대상이 있어야 하는데, 이를 피연산자로 한다.
✔ 연산자는 피 연산자로 연산을 수행하고, 항상 결과를 반환한다.
2. 식과 대입 연산자
✔ 연산자와 피 연산자를 조합해 계산하고자 하는 바를 표현한 것이 식.
✔ 그리고 식을 통해 결과를 얻은 것을 '식을 평가한다'라고 한다
✔ 하나의 식을 평가(계산)한다면 단 하나의 결과를 얻는다.
✔ 적당한 식을 프로그램에 평가하려면 식의 끝에 ';'을 붙여서 문장으로 만들자
x = 5 + 5 ;
→ y = x * 4 ;
→ y = 25 * 4 ;
→ y = 100
✔ 식을 평가해 값을 얻어 어떤 공간에 저장하지 않으면 값이 사라지므로, 변수와 대입 연산자를 사용해 저장할 수 있다.
✔ 식을 평가해 얻은 값을 변수에 저장하면 다른 연산에 사용할 수 있다.
3. 연산자의 종류
종류 | 연산자 | 설명 |
산술 연산자 | + - * / % << >> | 더하기, 빼기, 곱하기, 나누기, 나머지, 비트 이동 연산자 |
비교 연산자 | > < >= <= == != | 크고 작음과 같고 다름을 비교하는 연산자 |
논리 연산자 | && || ! & | ^ ~ | 그리고(and), 또는(or) 등 으로 조건을 연결하는 연산자 |
대입 연산자 | = | 우항의 값을 좌항에 대입 |
조건 연산자 | 조건 ? A : B | 조건이 참일 때, A 반환 거짓일 때, B 반환 |
형변환 연산자 | (타입) 변수 | 형변환(casting) 연산자를 사용해 타입바꿀 수 있다. |
instanceof 연산자 | 객체 instanceof 클래스 | 객체가 어떤 클래스나 인터페이스로부터 생성되었는지 판별 |
4. 피연산자의 개수에 의한 연산자의 분류
✔ 피연산자의 개수로도 연산자를 분류하기도 한다.
✔ 피연산자의 개수가 하나라면 '단항 연산자', 두 개라면 '이항 연산자', 세 개라면 '삼항 연산자'라고 말한다.
✔ 삼항 연산자는 오직 조건 연산자에 사용되는? 뿐이다.
-3 - 5
✔ 같은 형태의 연산자여도 기능이 다를 수 있는데, 이때에는 피연산자의 개수로 구분이 가능하다.
✔ 부호 연산자는 단항 연산자로 피연산자가 3 한 개.
✔ 산술 연산자인 뺄셈 연산자는 피연산자가 -3과 5 두 개다.
5. 연산자의 우선순위와 결합 규칙
✔ 하나의 식에 여러 개의 연산자가 사용될 수 있다. 어떤 연산자를 먼저 연산하느냐에 따라 결과가 다르다.
✔ 이때 연산자의 우선순위에 의해 연산 순서가 결정된다. 연산자의 우선순위는 아래와 같다.
우선 순위 | 연산자 | 설명 | 우선 순위 | 연산자 | 설명 |
1 | ( ) | 괄호 | 8 | & | 비트 AND 연산자 |
2 | ! ~ ++ -- | 부정, 증감 연산자 | 9 | ^ | 비트 XOR 연산자 |
3 | * / % | 곱셈, 나눗셈 연산자 | 10 | | | 비트 OR 연산자 |
4 | + - | 덧셈, 뺄셈 연산자 | 11 | && | 논리 연산자 |
5 | << >> >>> | 비트 이동 연산자 | 12 | || | 논리 연산자 |
6 | < <= > >= | 비교 연산자 | 13 | ? : | 조건 연산자 |
7 | == != | 비교 연산자 | 14 | = += 등.. | 대입 연산자 |
✔ 일반적으로 단항 연산자가 이항 연산자보다 우선순위가 높다.
✔ 모두 암기할 필요는 없고, 필요할 때 확인하자.
✔ 연산자의 우선순위가 같은 경우 연산자의 결합 규칙에 의해 순서가 결정된다. 아래와 같다.
1. 산술 > 비교 > 논리 > 대입 : 대입은 항상 마지막에 수행된다
2. 단항 > 이항 > 삼항 : 단항 연산자의 우선순위가 이항, 삼항보다 높다
3. 단항 연산자와 대입 연산자를 제외한 모든 연산자의 진행방향은 왼쪽에서 오른쪽이다
6. 산술 변환
✔ 이항 연산자를 사용해 연산을 할 때에는 두 개의 피연산자의 타입이 일치해야 한다.
✔ 이렇게 자동 형 변환되는 것을 산술 변환 또는 일반 산술 변환이라고 한다.
✔ 산술 변환에는 두 가지 규칙이 존재한다.
long + int = long
float + int = float
✔ 작은 타입으로 변환하면 원래의 값이 손실될 수 있기 때문에 더 큰 범위의 타입으로 일치시킨다. (자동 형 변환)
byte + short = int
char + short = int
✔ 정수형의 기본 타입인 int가 가장 효율적으로 처리할 수 있는 타입이기 때문에
✔ int보다 작은 타입인 경우 int로 자동 형 변환한다.
✔ 위와 같이 서로 다른 타입의 연산은 가능하지만, 의도하지 않은 타입으로 연산될 수 있으니
✔ 형 변환을 통해 원하는 타입으로 일치시켜주고 연산하자.
[참고] 자바의 정석
'BackEnd > JAVA' 카테고리의 다른 글
[Ch.03] 3. 산술 연산자 (0) | 2021.02.28 |
---|---|
[Ch.03] 2. 단항 연산자 (0) | 2021.02.28 |
[Ch.02] 형식화 출력 함수 printf() / 형변환 (1) | 2021.02.20 |
[Ch.02] 상수와 리터럴 (0) | 2021.02.20 |
[Ch.02] 자료형-기본형, 참조형 (0) | 2021.02.20 |