Java Day 3 연산자
08 Dec 2020 | JavaJava Day 3 연산자
-
연산자란?
-
자료의 가공을 위해 정해진 방식에 따라 계산하고 결과를 얻기 위한 행위를 의미하는 기호들의 총칭
-
연산자의 종류와 우선순위
종류 연산자 우선순위 최우선 연산자 . [] () 1 단항 연산자 ! ~ +/- ++/– 2 산술 연산자 * / % + - 3 시프트 연산자 « » »> 4 관계 연산자 < > <= >= == != 5 비트 연산자 & | ^ 6 논리 연산자 && || 7 삼항 연산자 조건? 항1 : 항2 8 배정 대입 연산자 *= /= %= += -= «= »= »>= &== |= ^= = 9 후위형 증감 연산자 ++ – 10 순차 연산자 , (콤마) 11
-
-
최우선 연산자
- . 접근 연산자, [] 배열 참조 연산자, () 괄호 연산자(괄호로 묶으면 먼저 연산처리) 등
-
단항 연산자
- +/- 부호 연산자 (양수,음수)
// 부호 연산자의 산출 타입은 int가 된다 short s = 99; short result = -s; // compile error // int result = -s; 이렇게 써야함
- ++/– 증감 연산자
int x1 = 10; int y1 = --x1; //다른 연산이 수행되기 전 피연산자의 값이 1 감소 System.out.println("x1 = " + x1); // x1 = 9, y1에 대입하기 전 1 감소 System.out.println("y1 = " + y1); // y1 = 9 int x2 = 10; int y2 = x2--; //다른 연산을 수행한 후 피연산자의 값이 1 감소 System.out.println("x2 = " + x2); // x2 = 9, y2에 10을 대입하고 1 감소 System.out.println("y2 = " + y2); // y2 = 10
- ! 논리부정, ~ 비트 부정 (정수형에만 사용 가능, 산출 타입은 int, long은 long에만)
-
산술 연산자
- +, -, *, /, %
- 정수(byte,short,char,int)의 사칙연산은 int가 나온다. 단, long 제외
char d, e; d = 'a'; //97 e = 'A'; //65 int f = d+e; //int가 아닐 경우 compile error System.out.println("f의 값 : " + f); //162
- NaN, Infinity 주의
int a = 5; int b = 0; int c = a / b; //0으로 나누면 ArithmeticException 예외 발생 int d = 5; double e = 0.0 //0에 한없이 가까운 근사치 double f = d / e; //0에 한없이 가까운 값으로 나누면 Infinity 출력 double g = d % e; //0에 한없이 가까운 값으로 나눈 나머지 NaN(Not a Number) 출력
-
시프트 연산자
- « (Left Shift) 연산자 : 2진수 변환 후 왼쪽으로 숫자만큼 민다. 빈자리는 0으로 채움
- ’»’ (Right Shift) 연산자 : 2진수 변환 후 오른쪽으로 숫자만큼 민다. 빈자리는 0으로 채움
- ’»>’ (Unsigned Right Shift) 연산자 : ‘»‘와 같으나 음수일 경우에도 0으로 채움
-
관계 연산자
- <, >, <=, >= 비교 관계 연산자
- ==, != 항등 관계 연산자
-
비트 연산자
-
& (AND) 2진 비트에서 모두 1인 값만 1 출력, ‘ ’ (OR) 2진 비트에서 하나만 1이어도 1 출력, ^ (Exclusive OR) 2진 비트에서 하나만 1인 값만 1 출력
-
-
논리 연산자
-
&& (AND) 둘 다 참이어야 참, ‘ ’ (OR) 둘 중 하나만 참이어도 참
-
-
삼항 연산자
- 조건항 ? 항1 (true) : 항2 (false) 자바스크립트에서 참 많이 쓴다
int score = 80; char grade = (score > 90) ? 'A' : 'B'; //false이므로 B 출력
-
배정 대입 연산자
-
+=, -=, *=, /=, %=, &=, ‘ =’, ^=, «=, »=, »>= - x += i ———> x = x + i 이렇게 풀어서 쓸 수 있다. 실제 연산속도에서는 차이가 없단다.
-
참고 자료
KG아이티뱅크 자바 강의자료