[Java] 연산자
2021. 1. 12. 20:13ㆍDev.Program/Java & Spring
728x90
책 p83
< 연산자 >
p.86
======== Ex.java 만들기
< 산술 연산자(+, -, *, /, %) >
- 일반 사칙연산과 동일
- % 연산자 : 나머지 연산자(퍼센트 연산자)라고 하며, 나눗셈 결과의 나머지 계산
< 산술 연산 시 자동 형변환 >
- 산술 연산 전에 데이터 타입이 다르다면 산술 연산을 수행하기 전 피연산자끼리의 데이터타입을 일치시킨 후 연산 수행
- 규칙 1. int 타입보다 작은 타입끼리의 연산은 모두 int 타입으로 변환 후 연산 수행
⇒ 따라서, 결과 값이 무조건 int 타입이 됨
ex) byte + byte = (int)byte + (int)byte 로 변환되어 연산 수행 = 결과가 int 타입
ex2) char + int = (int)char + int = int
- 규칙 2. int 타입보다 큰 타입과의 연산은 큰 타입으로 변환 후 연산 수행
ex) int + long = (long)int + long = long
ex2) int + double = (double)int + double = double
- byte + byte = int 이므로 byte 타입 변수에 저장 불가!
- b3 = (byte)(b1 + b2); 형 변환 시켜줌.
- 이렇게 오류가 뜰 때 밑에 밑줄 눌러주면
======== Ex2.java
p.95
< 대입연산자(=) >
- 우변의 데이터를 좌변의 변수에 대입(저장)
⇒ 연산 방향이 우 → 좌로 진행됨
ex) x = y = 3 의 경우 y에 3을 대입하고 x 에 y를 대입
- 모든 연산자 중에서 우선순위가 가장 낮다.
< 확장 대입연산자(복합 대입연산자)(+=, -=, *=, /=, %=) >
- 대입연산자와 산술연산자를 조합한 연산자
- 좌변과 우변의 데이터끼리 산술연산을 먼저 수행한 후 결과값을 좌변에 대입
======== Ex3.java
p.96
< 비교 연산자(관계 연산자) (>, >=, <=, <, ==, !=) >
- 두 피연산자 간의 대소관계 등을 비교하여 true 또는 false 값 리턴
======== Ex4.java
p.99
< 논리연산자(&&, ||, !, ^) >
- 두 피연산자 간의 논리적인 판별을 수행하는 연산자
- 피연산자는 모두 boolean 타입 데이터만 사용 가능하며, 결과값도 boolean 타입으로 리턴
- AND 연산자(& 또는 &&) - 논리곱
- 두 피연산자가 모두 true 일 경우에만 결과값이 true 이고, 하나라도 false 일 경우 결과값이 false
- F AND F = F, F AND T = F, T AND F = F, T AND T = T
- OR 연산자(| 또는 ||) - 논리합
- 두 피연산자 중 하나라도 true 일 경우 결과값이 true 이고, 모두 false 일 경우에만 결과값이 false
- F OR F = F, F OR T = T, T OR F = T, T OR T = T
- NOT 연산자(!) - 논리부정
- 단항 연산자로, 현재 값을 반대로 반전시킴
- F → T, T → F
- XOR 연산자(^) - 배타적 논리합(배타적 OR)
- 두 피연산자가 서로 다를 때 true, 같을 때 false
- F XOR F = F, F XOR T = T, T XOR F = T, T XOR T = F0
< 논리 연산자 진리표 >
& | T | F | | | T | F | ^ | T | F | ! | T | F |
T | T | F | T | T | T | T | F | T | F | T | |
F | F | F | F | T | F | F | T | F | |||
논리곱 | 논리합 | 배타적 논리합 | 부정 |
======== Ex5.java
p.102
< 증감연산자(++, --) >
- 단항연산자
- 피연산자의 앞 또는 뒤에 붙어서 값을 1만큼 증가 또는 감소시키는 연산자
- 다른 연산과 결합될 때, 전위연산자와 후위연산자에 따라 다른 결과를 가져옴
1. 선행연산자(전위연산자)
- 피연산자의 앞쪽(좌측)에 붙어서 값을 1 증가 또는 감소시키는데 먼저 피연산자의 값을 증가 또는 감소시킨 후 다른 연산에 참여
ex) ++a, --a
2. 후행연산자(후위연산자)
- 피연산자의 뒷쪽(우측)에 붙어서 값을 1 증가 또는 감소시키는데 피연산자를 먼저 다른 연산에 참여시킨 후 피연산자 값을 1 증가 또는 감소
ex) a++, a--
> 선행
- x1 의 값을 먼저 1만큼 증가시킨 후, 대입연산자를 통해 x1 값을 y1 에 대입
- 따라서, x1 이 5 → 6 으로 변경된 후 y1 에 x1 을 저장하므로 y1 도 6이 저장됨
> 후행
- x2 의 값을 먼저 y2 에 대입한 후, x2 의 값을 1 만큼 증가시킴
- 따라서, x2 가 5 일 때 y2 에 대입된 후, x2 의 값을 5 → 6으로 변경
⇒ 차이점 잘 기억하기!!
728x90
'Dev.Program > Java & Spring' 카테고리의 다른 글
[Java] switch~case문 / 반복문 / for문 (0) | 2021.01.14 |
---|---|
[Java] 조건문 / if문 / if~else문 / 중첩if문 (0) | 2021.01.14 |
[Java] 삼항연산자 / 논리연산자 / 쉬프트연산자 (0) | 2021.01.14 |
[Java] 아스키코드 / 유니코드 / 형변환 / print() (0) | 2021.01.12 |
[Java] 상수 / 변수 / 기본데이터타입 (0) | 2021.01.12 |