Operator
Operators
Type | Operator |
산술 연산자 | + - * / % << >> (bit operator) |
비교 연산자 | >< >= <= == != |
논리 연산자 | && || ! & | ^ ~ (bit operator) |
대입 연산자 | = |
기타 | (type) : 형변환 연산자 ?: 삼항연산자 instanceof (객체지향 개념) |
Priority of Operator
산술 > 비교 > 논리 > 대입
단항 > 이항 > 삼항
단항 연산자(부호연산자 등)와 대입 연산자 : 오른쪽에서 왼쪽으로 연산. 이를 제외한 모든 연산의 진행방향은 왼쪽에서 오른쪽이다.
증감 연산자
Type | Description | Example |
전위형 | 값이 참조되기 전에 증가시킨다. | j = ++i; |
후위형 | 값이 참조된 후에 증가시킨다. | j=i++; |
증감연산자가 다른 연산자와 함께 식에 사용된다면 전위형과 후위형의 결과는 차이가 있지만, 독립적으로 사용된 경우는 차이가 없다.
Automatic Type Transition(자동 형변환)
기존의 값을 최대한 보존할 수 있는 타입으로 자동 형변환된다.
사칙 연산자, 산술 변환
두 피연산자의 타입을 같게 일치시킨다.(보다 큰 타입으로 일치)
2. 피연산자의 타입이 int보다 작은 타입이면 int로 변환된다.
실수하기 쉬운 overflow 발생 : int * int = int인데 +_20억을 초과하면 long타입으로 형변환을해줘야한다!
나머지 연산자 %
나누는 피연산자는 0이 아닌 정수만 허용되고 부호는 무시된다.
10%8과 10%-8은 같은 결과를 얻는다.
비교연산자, 문자열의 비교
두 피연산자를 비교해서 참(true) 또는 거짓(false)을 반환한다.
'A' > 'B' => 65 > 66 => false
문자열을 비교할 땐 equals() 메소드를 사용한다.
논리 연산자 && ||
: 조건식을 연결할 때 사용하는 연산자.
i는 2의 배수 또는 3의 배수이지만 6의 배수는 아니다.
사용자로부터 입력된 문자ch가 숫자('0' ~ '9')인지 확인하는 식은 다음과 같이 쓸 수 있다. 자주 쓰이는 조건식이기 때문에 살펴보도록 하자. 유니코드에서 문자 '0'부터 '9'까지 연속적으로 배치되어 있기 때문에 가능한 식이다.
문자 | 문자코드 |
'0' | 48 |
'1' | 49 |
'2' | 50 |
'3' | 51 |
'4' | 52 |
'5' | 53 |
'6' | 54 |
'7' | 55 |
'8' | 56 |
'9' | 57 |
문자 ch가 대문자 또는 소문자인지 확인하는 식은 다음과 같이 쓸 수 있다.
문자 ch가 소문자가 아니다.
조건 연산자 ?:
삼항연산자 👉🏻 조건식 ? 식1 : 식2
참이면 식1, 거짓이면 식2가 실행된다.
삼항연산자가 if문보다 간편하기 때문에 사용된다.
대입 연산자
lvalue(left value) : 대입 연산자의 왼쪽 피연산자
rvalue(right value) : 대입 연산자의 오른쪽 피연산자
복합 대입 연산자
Operator | Equals |
i += 3; | i = i+3; |
i -= 3; | i = i-3; |
i *= 3; | i = i*3; |
i /= 3; | i = i/3; |
i %= 3; | i = i%3; |
i <<= 3; | i = i<<3; |
i >>= 3; | i = i>>3; |
i &= 3; | i = i&3; |
i ^= 3; | i = i^3; |
i |= 3; | i = i|3; |
i *= 10 +j; | i = i * (10+j); //괄호 필수!어떤 값을 계속적으로연산할 것인지 인지! //i에 (10+j)를 계속 곱한다! //i = i * (10+j); |
Last updated