연산을 수행하는 기호
- 연산자 : 연산을 수행하는 기호
- 피연산자 : 연산자의 작업 대상
- 식 : 연산자와 피연산자를 조합하여 계산하고자하는 바를 표현한 것, 끝에 ';'를 붙힌다.
- 대입연산자 : '=', 변수와 같이 값을 저장할 수 있는 공간에 결과를 저장
종류 | 연산자 | 설명 |
---|---|---|
산술 연산자 | + - * / % << >> | 사칙 연산(+,-,*,/)과 나머지 연산(%) |
비교 연산자 | > < >= <= == != | 크고 작음과 같고 다름을 비교 |
논리 연산자 | && || ! & | ^ ~ | '그리고(AND)'와 '또는(OR)'으로 조건을 연결 |
대입 연산자 | = | 우변의 값을 좌변에 저장 |
기 타 | (type) ?: instanceof | 형변환 연산자, 삼항 연산자, instanceof 연산자 |
- 산술>비교>논리>대입
- 단항>이항>삼항
- 단항 연산자와 대입 연산자를 제외한 모든 연산의 진행방향은 왼쪽에서 오른쪽이다.
-> 헷갈릴수 있으므로 괄호('(', ')')를 사용하여 우선수위를 나타내는것이 낫다.
두 피연산자의 타입이 일치해야 연산이 가능하므로, 일반적으로 두 피연산자 타입 중 더 큰 타입으로 일치시켜준다.( int보다 작은 타입일 경우 int로 변환 )
증가 연산자(++) : 피연산자의 값을 1 증가시킨다.
감소 연산자(--) : 피연산자의 값을 1 감소시킨다.
타입 | 설명 | 사용 예 |
---|---|---|
전위형 | 값이 참조되기 전에 증가시킨다. | j = ++i; |
후위형 | 값이 참조된 후에 증가시킨다. | j = i++; |
가운데 |
cf) 식에 두 번 이상 포함된 변수에 증감연산자를 사용하는 것을 피해야 한다.
부호 연산자 '-'는 피현산자의 부호를 반대로 변경한다.
- / 연산자가 + - 연산자 보다 우선순위가 높다.
왼쪽의 피연사자를 오른쪽 피연산자로 나누고 난 나머지 값을 결과로 반환한다(오른쪽 피연사의 부호는 무시한다.).
연산결과는 true와 false 중 하나이다.
cf) equals() : 문자열 비교
equalsIgnoreCase() : 문자열 비교(대소문자 비교 x)
&& : 피연산자 양쪽 모두 true이면 true를 결과로 얻는다.
|| : 피연사 중 하나만 true 여도 true를 결과로 얻는다.
! : 피연산자가 true이면 false를, false이면 true를 반환한다.
& : 피연산자 모두 값이 1이면 결과를 1로 반환
| : 피연산자 중 한 쪽의 값이 1이면 결과를 1로 반환
^ : 피연산자의 값이 서로 다르면 결과를 1로 반환
~ : 피연사자를 2진수로 표현했을때, 0->1로 1->0으로 바꾼다.
<< : 피연산자를 2진수로 표현했을때, 왼쪽으로 이동을 시킨다. 저장범위가 넘어난 값들은 버려지고 빈자리는 0으로 채워진다.
>> : 피연산자를 2진수로 표현했을때, 오른쪽으로 이동을 시킨다. 저장범위가 넘어난 값들은 버려지고 빈자리는 0으로 채워진다. 음수일때는 1로 채워진다.
x<<n은 x*2^n과 같다
x>>n은 x/2^n과 같다
조건식 ? 식1 : 식2
조건식이 참이면 식1, 거짓이면 식2를 실행한다.
복합 대입 연산자
연산자(op)와 결합한 'op ='형태이다.
ex) i += 3; -> i = i + 3;