3) 대입연산자와 산술연산자


연산자(Operators)

 

자바는 변수들을 다루는 여러가지 연산자를 제공한다.

 

· 산술 연산자(Mathematical Operators)

 

모든 언어에서처럼 자바에서도 산술연산이 가능하다. 다음의 표를 보도록 하자.

 

연산자 설명 예제
+ 더하기연산 int x = 1; 
int y = 2; 
int z = x + y // z = 3
- 빼기연산 int x = 2; 
int y = 1; 
int z = x - y // z = 1
* 곱하기연산 int x = 2; 
int y = 2; 
int z = x * y // z = 4
/ 나누기연산 int x = 4; 
int y = 2; 
int z = x / y // z = 2
% 나머지연산(modulus) int x = 6; 
int y = 4; 
int z = x % y // z = 2

 

 자바에서 산술연산을 할 때 주의해야 할 것은 연산하는 변수들의 변수형과 자동으로 수행되는 캐스팅(Casting), 이 두가지이다. 앞에서도 여러번 말했듯이 자바는 데이타형에 있어 엄격하기 때문에 기대하는 결과를 얻기 위해서는 변수형에 각별히 신경쓰며 연산을 수행시켜야 한다.

 

· 대입 연산자(Assignment Operators)

 

 변수를 초기화하거나 어떤 값을 대입할 경우 대입연산자를 이용한다 숫자형의 변수인 경우에는 "=" 이외에도 여러가지 다른 유용한 대입연산자가 제공된다. 다음 표를 보자.

 

연산자 설명
= 등호. 다음과 같이 사용된다. 
x=y=x=0
+= 덧셈연산 후 대입 (x=1;x+=2; //x=3)
-= 뺄셈연산 후 대입
/= 나눗셈연산 후 대입. 여기서는 캐스팅에 주의해야 한다.
*= 곱셈연산 후 대입
%= 나머지연산 후 대입
^= XOR 비트연산 후 대입
&= AND 비트연산 후 대입
|= OR 비트연산 후 대입
<<= left shift연산 후 대입
>>= Right Shift연산 후 대입
>>>= Right Shift연산 후 0으로 비트를 채우고 대입

 

· 증가와 감소

 

 자바는 또한 증감연산자를 제공하는데 prefix방식과 postfix방식의 사용법이 있다. prefix의 경우 그 변수가 증감되고 나서 연산이 실행되는 방식이고, postfix의 경우는 연산 후에 변수의 값이 증감되는 방식이다. 그럼 예제를 살펴보자.

 


int x = 3;
int y = 3;
int sum1 = 2 * x++; // sum1 is 6 and x is 4
int sum2 = 2 * ++y // sum2 is 8 and y is 4
int sum3 = 2 * x--; // sum3 is 6 and x is 2
int sum4 = 2 * --y // sum4 is 4 and y is 2


 

· 우선 순위

 

마지막으로, 연산자끼리의 우선순위를 알아보도록 하자.

 

우선
순위
연산자 결합순서
R(Right)
L(Left)
1 ++, --, ~!, +, -, 단항연산(unary), (type cast) R
2 * / % L
3 +, -, + (결합) L
4 >>>, >>, << L
5 <, <=, >, >= L
6 ==, != L
7 & L
8 ^ L
9 | L
10 && L
11 || L
12 ?: R
13 =, *=, /=, %=, +=, -=, <<=, >>=, >>>=, &=, ^=, |= R

 

· 지난 과정 되짚기

 

Question 1 다음 수식의 결과에 맞는 것은?
5%3*2+6

 

  36
  10
  7
  16

 

정답 확인