ch03. 연산자
03-1. 연산자와 연산식
[연산자]
- 산술 연산자 -> 산출 결과값 (숫자 타입)
- 논리, 비교 연산자 -> 산출 결과값 (boolean타입) 즉, T or F
< 연산식은 반드시 하나의 값을 산출 >
- 연산식이 값 대신 사용되는 경우
int result = x + y;
- 연산식이 피연산자로 사용되는 경우
boolean result = (x + y) < 5;
[연산 방향과 우선순위] : 다양한 연산자가 복합적으로 구성된 연산식의 연산
- 우선순위가 같은 연산자의 연산식 -> 연산 방향 따짐(2) 단, 대입 연산자 : 왼 <- 오 방향으로 연산 수행
**(1) 대부분 왼->오 방향으로 연산 수행**
- 우선순위가 다른 연산자의 연산식산술 > 비교 > 논리 > 대입
- (2) 괄호() 사용해서 우선 처리할 연산식 묶어줌 (사용多)
**(1) 연산자 우선순위에 따라 연산** 단항 > 이항 > 삼항
03-2. 연산자의 종류
🟦[단항 연산자] : 피연산자 하나뿐인 연산자
✅ <부호 연산자> : 숫자타입 피연산자에만 사용(boolean, char 제외)
(1) 리터럴 대상 부호 연산
int a = -100;
double b = -10.5;
(2) 변수 대상 부호 연산
(단, 변수 대상 부호 연산의 결과는 int 타입이므로, 결과값을 int타입 변수에 저장할 것)
-java는 기본적으로 int이하의 정수 연산을 int타입으로 변환시켜 수행한다.
byte b = 100;
int result = -b;
✅ <증감 연산자> : boolean 제외 모든 기본 타입 피연산자에 사용
int x = 1;
int A = ++x + 10; // 12 (선 처리 후, 연산 수행)
int B = x++ + 10; // 11 (연산 처리 후, x값 1 증가)
✅ <논리 부정 연산자> ! : boolean타입에만 사용
T -> F (토글 기능)
🟦[이항 연산자] : 피연산자가 2개인 연산자
✅ <산술 연산자> : boolean타입 제외한 모든 기본 타입에 사용
[산술 연산자의 특징]
: 피연산자 타입이 서로 다른 경우, 규칙에 따라 타입일치 시켜서 연산함
(1) 정수 연산
(int 타입 이하의 연산) -> 모두 int타입 변환 후 연산수행
(2) 정수 연산
(long 타입 포함 연산) -> 모두 long 타입 변환 후 연산 수행
(3) 실수 연산
-> 더 큰 타입으로 변환 후 연산 수행
[char 타입의 산술 연산]
:char타입도 정수타입이라 연산이 가능하며, (->유니코드값)
int 타입 이하의 정수연산이 되므로 연산 결과는 int타입이 된다,
(1) char 타입 리터럴(값) 간의 연산
char c1 = ‘A’ + 1; // 컴파일러가 컴파일단계에서 수행함 (타입변환X)
(2) char 타입 변수 연산
int c3 = c1 + 1; // JVM 이 타입 변환 이후 연산 수행함
→char타입의 결과값 산출 원하면 강제 형변환시켜야 한다.
char c3 = (char) c1 + 1;
✅<문자열 결합 연산자>
: “문자열” 피연산자 하나라도 포함된 +연산식에서는
나머지 피연산자들이 전부 문자열로 형변환하여 문자열 결합 연산 수행된다.
✅<비교 연산자> ; 결과값은 boolean타입(T or F)
- 동등비교 연산자 : 모든 타입 피연산자에 사용 O
- 대소비교 연산자 : boolean 제외한 기본타입 피연산자에 사용O[비교연산자의 특징]
- : 연산수행 전 피연산자 타입 일치시킴
- [char 타입의 비교 연산] : 유니코드값으로 비교 연산 수행
✅<논리 연산자> : boolean타입변수 피연산자에만 사용 O, 결과값도 boolean타입 (T or F)
✅<대입 연산자> : 모든 연산자 중 가장 낮은 우선순위-> 가장 마지막에 수행
- 단순 대입 연산자 : 대입
- 복합 대입 연산자 : 연산 후 대입
: += , -= , *=, /=, %=, &=, |=, ^=
🟦[삼항 연산자] : 피연산자 3개인 연산자
(조건식) ? (T) : (F) ;
'Java > [문법]_Java(자바)' 카테고리의 다른 글
ch06. 클래스 (0) | 2021.08.02 |
---|---|
ch05. 참조 타입 (0) | 2021.07.29 |
ch04. 흐름 제어문 (조건문과 반복문) (0) | 2021.07.29 |
ch02. 변수와 타입 (0) | 2021.07.28 |
ch01. 자바 시작하기 (0) | 2021.07.28 |