티스토리 뷰
▶▶ 대입 연산자 ( = )
– 우변의 데이터를 좌변의 변수에 대입(저장)하는 역할, 연산 방향이 우 → 좌로 진행됨.
ex ) x=y=3의 경우, y에 3을 대입하고, x에 3이 아닌 y를 대입.
→ 결론적으로 x도 y도 3이지만 3이 대입 되는 순서가 다름.
– 모든 연산자 중에서 우선순위가 가장 낮음. 즉, 다른 모든 작업을 수행한 후 대입연산을 수행.
▶ 확장(복합) 대입 연산자 ( += -= *= /= %= )
– 대입연산자와 산술연산자를 조합한 연산자.
– 좌변과 우변의 데이터끼리 산술연산을 먼저 수행하고, 그 결과값을 다시 좌변의 변수에 대입(저장)함.
→ a = a+b는 a+=b로 바꿀 수 있고, 'a는 b만큼 증가한다' (누적합)로 풀이하면 쉬움.
– 확장 대입 연산자를 사용하면 형변환 에러가 나지 않음.
ex ) char ch = 'A';
ch = ch+3; → 에러 O
ch += 3; → 에러 X
EX1 )
int a = 10;
int b = a;
b += a; // b = b+a
→ 우변의 데이터 10을 좌변의 변수 a에 대입(저장)
→ 우변의 변수a의 값을 좌변의 변수b에 대입(저장)
→ b와 a의 덧셈 결과(10+10=20)를 다시 변수b에 저장, 마치 b에 a값을 누적하는 것과 동일함.
→ 'b는 a만큼 증가한다' 라는 뜻.
✓ b = 20
b -= a; // b = b-a;
→ b와 a의 뺄셈 결과(20-10=10)가 다시 변수b에 저장됨.
→ 'b는 a만큼 감소한다' 라는 뜻.
✓ b = 10
b *= a; // b = b*a
→ b와 a의 곱셈 결과(10*10=100)가 다시 변수b에 저장됨.
→ 'b는 a만큼 곱해진다' 라는 뜻.
✓ b = 100
b /= a; // b = b/a
→ b와 a의 나눗셈(몫)결과(100/10=10)가 다시 변수b에 저장됨.
→ 'b는 a만큼 나눠진다' 라는 뜻.
✓ b = 10
b %= a; // b = b%a
→ b와 a의 나눗셈(나머지)결과(100*10=0)가 다시 변수b에 저장됨.
→ 'b는 a만큼 나눠진다' 라는 뜻.
✓ b = 0
EX2 )
byte b1 = 10;
b1 = b1 + 10;
→ b1과 정수10을 더한 값을 다시 b1에 저장함.
b1 = (byte)(b1+10);
→ byte + int = int가 되므로 결과값을 byte타입으로 강제 형변환해야 함.
b1 += 10;
→ 확장 대입연산자를 사용하여 b1 + 10의 값을 b1에 저장, b1은 정수 10만큼 증가함.
EX3 ) char타입 변수 값 변화
char ch = 'A'; // 'A' = 65
ch = ch + 3;
→ 좌변과 우변의 타입이 맞지 않아 컴파일 에러남.
ch = (char)(ch+3); // 방법1
ch += 3; // 방법2
→ 강제 형변환을 수행하거나, 확장 대입연산자를 사용함.
✓ char타입 변수 값을 변화시킬 때, 확장 대입연산자를 많이 사용함.
▶▶ 비교 연산자 ( > >= < <= == != )
– '관계 연산자' 라고도 함.
– 두 피연산자간의 대소 관계 등을 비교하여 true(참) 또는 false(거짓) 값을 리턴함.
– 동등비교 연산자는 수학(=)과 달리 == 형태의 기호 사용
– >= 또는 <= 연산자의 순서 변경 불가능, => 이렇게 순서 바꾸는거 안됨.
– 리턴되는 결과값을 바로 사용하거나 boolean타입 변수에 저장 가능.
– 서로 다른 데이터타입끼리의 비교 시, 산술연산과 마찬가지로 동일한 타입으로 일치시킨 후 비교 연산을 수행
EX )
EX2 ) char타입끼리 비교
✓ char타입끼리 비교 시에는 int타입으로 변환 후 비교 (유니코드값으로 비교함)
EX3 ) float타입과 double타입 비교
✓ double타입과 float타입 비교 시 float타입을 double타입으로 변환 후 비교를 수행하는데,
실수 근사치 표현에 의해 잘못된 연산 결과가 발생할 수 있음.
comment

확장대입연산자를 사용하면 왜 컴파일에러가 안날까?
a = a+1과 a+=1은 같은 표현인데 왜 얘는 나고 쟤는 안나지?
구글링 해봐야겠다 ㅎㅅㅎ
'JAVA' 카테고리의 다른 글
증감 연산자 (선행 연산자 & 후행 연산자) (0) | 2023.02.05 |
---|---|
논리 연산자 (AND, OR, NOT, XOR) (0) | 2023.02.04 |
산술 연산자 / 연결 연산자 (0) | 2023.02.02 |
JAVA 데이터 타입 간의 형 변환 (타입 변환) (0) | 2023.02.02 |
상수(contant) / JAVA의 데이터 타입 (기본형 & 참조형) (0) | 2023.02.01 |
- Total
- Today
- Yesterday
- mysql
- DB
- 출력문
- 숫자형
- Method
- 제어문
- null
- 단일행함수
- Java
- jsp
- 내장객체
- github
- 원격저장소
- 오버라이딩
- Git
- 매개변수
- 로컬저장소
- model2
- Object
- JSTL
- javascript
- 주석문
- 업캐스팅
- 데이터타입
- 다형성
- 인자
- 논리형
- Dao
- gitbash
- 문자형
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 |