1 연산자
1.1 연산자란?
자바에서 사용되는 연산자(operator)는 변수와 상수 등 데이터 대상에 대한 연산 동작을 행하는 기호들을 말한다. 이때 연산(operation)의 대상이 되는 것을 피연산자(Operand)라고 한다.
1.2 연산자의 종류
1.2.1 단항연산자
- 연산자라고도 하며, 단항연산자는 연산에 필요한 피연산자가 1개라는 것을 의미한다.
1) 부호 연산자: +, -
- 피연산자의 부호를 변경하는데 사용되며, boolean형과char형을 제외한 나머지 기본형에 사용한다.
- ‘+’의 경우 피연산자에 양수1을 곱한 결과를, ‘-‘의 경우 피연산자에 음수 1을 곱한 결과를 얻는다.
2) 증감 연산자: ++, --
- 일반적 당항 연산자는 피연산자의 왼쪽에 위치하지만, 증감연산자는 양쪽 모두 가능하다.
- ‘-‘ 연산자를 어느 위치에 놓는가에 따라 연산결과가 달라 질 수 있다.
- 증가 연산자(++): 피연산자(operand)의 값을 1 증가시킨다.
- 감소 연산자(--): 피연산자(operand)의 값을 1 감소시킨다.
++x: 선증가 --x: 선감소 x++: 후증가 x--: 후감소
3) 비트전환 연산자: ~
- 비트전환 연산자’~’는 정수형과 char형에만 사용될 수 있으며, 피연산자를 2진수로 표현했을 때, 0은 1로 1은 0으로 바꾼다.
- ‘~’연산자에 의해 비트전환 되고 나면, 피연산자의 부호가 반대로 변경된다.
4) 논리부정 연산자: !
- boolean형에만 사용할 수 있으며, true는 false로 false는 true로 변경한다.
- 조건문과 반복문의 조건식에 사용되어 조건식을 보다 효율적으로 만들어 준다.
1.2.2 산술연산자
두개의 피연산자를 취하는 이항 연산자이며, 사칙 연산자, 나머지 연산자, 쉬프트 연산자등이 있다.
1) 사칙 연산자: +, -, *, /
- 곱셈 ’*’, 나눗셈 ’/’, 연산자가 덧셈 ’+’, 뺄셈 ’-‘ 연산자보다 우선순위가 높다.
- int형(4byte)보다 크기가 작은 자료형은 int형으로 형변환 후에 연산을 수행한다.
Byte + short -> int + int -> int
- 두 개의 피연산자 중 자료형의 표현범위가 큰 쪽에 맞춰서 형변환 된 후 연산을 수행한다.
Int + float -> float + float -> float
- 정수형 간의 나눗셈에서 0으로 나누는 것은 금지되어 있다.
2) 나머지 연산자: %
- 왼쪽의 피연산자를 오른쪽 피연산자로 나누고 난 나머지 값을 돌려주는 연산자이다.
- boolean형을 제외하고는 모든 기본형 변수에 사용할 수 있다. 나머지 연산자는 주로 짝수, 홀수 또는 배수 검사등에 주로 사용된다.
3) 쉬프트 연산자 : <<, >>, >>>
- 정수형 변수에만 사용할 수 있다. 피연산자의 각 자리(2진수 자리)를 오른쪽 또는 왼쪽으로 이동시킨다.
- 오른쪽으로 n자리를 이동하면 피연산자를 2n로 나눈 것과 같은 결과를, 왼쪽으로 n자리를 이동하면 2n으로 곱한 것과 같은 결과를 얻을 수 있다.
- X << n은 x * 2n의 결과와 같다.
- X >> n은 x / 2n의 결과와 같다.
- ‘<<’ 연산자의 경우 피연산자의 부호에 상관없이 자리를 왼쪽으로 이동시키며 빈칸을 0으로 채움.
- ‘>>’연산자의 경우 빈자리를 1로 채움.
- ‘>>>’연산자는 부호에 상관없이 항상 0 으로 빈자리를 채움,
1.2.3 비교 연산자
두 개의 변수 또는 리터럴을 비교하는 데 사용되는 연산자로, 주로 조건문과 반복문의 조건식에 사용되며, 연산결과는 true 또는 false이다.
1) 대소비교 연산자 : <, >, <=, >=
- 두 피연산자의 크기를 비교하며 기본형 중에서는 boolean형을 제외한 나머지 자료형에 다 사용할 수 있지만 참조형에는 사용할 수 없다.
2) 등가비교 연산자 : ==, !=
- 두 피연산자에 저장되어 있는 값이 같은지 또는 다른지를 비교하는 연산자.
- 대소비교 연산자와는 달리 기본형은 물론 참조형, 즉 모든 자료형에 사용할 수 있다.
1.2.4 논리 연산자
1) 논리 연산자: &&, ||
- 논리 연산자는 피연산자로 boolean형 또는 Boolean형 값을 결과로 하는 조건식만을 허용한다. 조건문과 반복문에서 조건식 간의 결합에 사용된다.
- || (OR결합) – 피연산자 중 어느 한 쪽만 true이면 true를 결과로 얻는다.
- && (AND결합) – 피연산자 양쪽 모두 true이어야 true를 결과로 얻는다.
- ‘&&가 ‘||’연산보다 우선순위가 높으므로 한 조건식에 함께 사용될 때는 괄호를 사용해서 우선순위를 명확히 해주는 것이 좋다.
2) 비트 연산자: &, |, ^
- 비트 연산자는 이진 비트연산을 수행한다. 값을 이진수로 표현했을 때의 각 자리수를 규칙에 따라 연산을 수행한다. 실수형인 float와 double을 제외한 모든 기본형에 사용 가능하다.
- | (OR연산자): 피연산자 중 한 쪽의 값이 1이면, 1을 결과로 얻는다. 그 외에는 0을 얻는다.
- & (AND연산자): 피연산자 양 쪽이 모두 1이어야 1을 결과로 얻는다. 그 외에는 0을 얻는다.
- ^ (XOR연산자): 피연산자의 값이 서로 다를 때만 1을 결과로 얻는다. 같을 때는 0을 얻는다.
1.2.5 삼항 연산자
- 삼항 연산자 ‘ ? : ‘
(조건식) ? 식1 : 식2
result = ( x > 0 ) ? x : -x ;
삼항 연산자는 세 개의 피연산자를 필요로 하기 때문에 삼항 연산자로 이름 지어졌다.
- 조건식과 조건식이 참(true)일 때와 거짓(false)일 때 반환되는 값, 이 세가지가 삼항 연산자의 피연산자이다.
- 삼항 연산자의 조건식에는 연산결과가 true 또는 false인 식이 사용되어야 한다. 조건식의 연산결과가 true이면 식1을 결과로 얻고 false이면 식2를 결과로 얻는다.
1.2.6 대입 연산자
- 대입 연산자 : =, op=
대입 연산자는 변수에 값 또는 수식의 연산결과를 저장하는데 사용된다. 대입 연산자의 왼쪽에는 반드시 변수가 위치해야하며, 오른쪽에는 리터럴이나 변수 또는 수식이 올 수 있다.
- 대입 연산자는 모든 연산자들 중에서 가장 낮은 연산순위를 가지고 있기 때문에 제일 마지막에 수행되며 연산 진행방향이 오른쪽에서 왼쪽이다.
- 대입 연산자는 다른 연산자와 결합하여 ‘op=’ 와 같은 방식으로 사용될수 있다.
ex) i = i + 3 은 I += 3 과 같은 식이다.
'와사비크래커 IT Tip > 언어' 카테고리의 다른 글
[JAVA] 배열 (0) | 2020.09.01 |
---|---|
[JAVA] 조건문과 반복문 (0) | 2020.08.31 |
[JAVA] 변수 (0) | 2020.08.27 |
[JAVA] JAVA의 소개 (0) | 2020.08.27 |
자바(Java) 자료타입 (0) | 2020.07.28 |