반응형
연산자는 비트연산 또는 shift연산 빼고 중요하다.
→ 다만, 연산속도가 빨라서 최적화에 필요할 수도 있다.
연산자 결합규칙
- 산술 > 비교 > 논리 > 대입 → 대입이 가장 마지막에 수행
- 단항 > 이항 > 삼항 → 단항 연산자의 우선순위가 이항 연산자 보다 높다
- 단항 연산자와 대입 연산자를 제외한 모든 연산의 진행 방향은 왼쪽 → 오른쪽
증감 연산자(++) , 감소 연산자 (--)
- 전위형 → 값이 참조되기 전 증가
- 후위형 → 값이 참조된 후에 증가
public class Operator0718{
public static void main(String[] args) {
int i = 10, j = 0;
j = i++;
System.out.println("i : " + i + " j : " + j);
// i를 j에 먼저 대입을 하고 i의 값을 1 증가시킨다.
j = ++i;
System.out.println("i : " + i + " j : " + j);
//i의 값을 1 증가시킨 상태에서 j값에 대입한다.
}
}
실행결과
i : 11 j : 10
i : 12 j : 12
형변환 (변수 or 상수 타입을 다른 타입으로 변환)
형변환은 같은 유형끼리만 변경이 가능하다.
ex) 실수 → 정수 형변환될때는 유실이 생길 수 있다.
(큰 타입→ 작은 타입) 유실이 발생하거나 에러가 생긴다.
기존의 값을 최대한 보존할 수 있는 타입으로 자동형변환된다.
연산자 우선순위
연산자 우선순위가 헤깔릴때에는 먼저 수행되어야 하는 연산을 ( )로 묶으면 우선순위를 강제로 지정하게 된다.
(실수 발생 예방)
public static void main(String[] args) {
System.out.println( 2 * 3 + 1);
System.out.println(2 * (3 + 1));
}
실행결과
7
8
논리연산자 (&& 와 ||)
A && B → A,B 둘 다 TRUE여야만 TRUE
A || B → A,B 둘 중 하나만 TRUE여도 TRUE
A || B || C의 연산에서 A||B가 TRUE여도 B||C가 TRUE인지 한번 더 체크를 한다.
하지만,
A|B|C 의 연산은 A|B가 TRUE이면 B|C가 TRUE인지 체크하지 않는다.
반응형
'Challenge' 카테고리의 다른 글
나의 챌린지에 대하여.. (0) | 2021.12.06 |
---|---|
#210718 java 변수 (0) | 2021.07.18 |
210315 #1:) (0) | 2021.03.26 |
12주차 과제: 애노테이션 #12 (0) | 2021.02.12 |
11주차 과제: Enum (0) | 2021.01.29 |
댓글