본문 바로가기
JAVA

[JAVA] 자바 연산자 (Operator)

by Amy IT 2022. 5. 17.

자바언어에서 사용하는 연산자입니다.

 

1. 산술연산자

 

2항 연산자로서 피연산자에 대해 덧셈, 뺄셈, 곱셈, 나눗셈, 나머지를 구하기 위해 사용합니다.

int n =10;
int n2 =3;
System.out.println(n+n2); //13
System.out.println(n-n2); //7
System.out.println(n*n2); //30
System.out.println(n/n2); //3
System.out.println(n/3.0); //3.3333
System.out.println(n%n2); //1

유의해서 봐야할 부분은 나누기와 나머지 구하기입니다. 10 나누기 3은 실제로는 3.333이지만 위에서 볼 수 있듯이 정수 나누기 정수는 정수값인 3으로 반환됩니다. %로 나머지를 구하면 1이 반환됩니다. 

 

 

 

2. 대입연산자

 

변수에 새로운 값을 저장하는 경우에 사용합니다.

 

연산자 설명 동일한 방법
a = b b를 a에 저장  
a += b a와 b를 더해서 다시 a에 저장 a = a + b
a -= b a에서 b를 빼서 다시 a에 저장 a = a - b
a *= b a와 b를 곱해서 다시 a에 저장 a = a * b
a /= b a에서 b를 나누고 다시 a에 저장 a = a / b
a %= b a에서 b를 나눈 나머지를 다시 a에 저장 a = a % b

 

int a=10;
a+=1; 
System.out.println(a); //11
a= a+1; 
System.out.println(a); //12
		
int x =10;
int x2 =x;
x2 += x; //x2=20
x2 -= x; //x2=10
x2 *= x; //x2=100
x2 /= x; //x2=10
x2 %= x; //x2=0
System.out.println(x2); //0

 

 

 

3. 증감연산자

 

기존 변수가 가지고 있는 값을 1 증가하거나 1 감소하는 경우에 사용합니다. 증감연산자는 단항 연산자로서 변수의 앞 또는 뒤에 올 수 있으며 앞에 오는 경우 전위 연산자, 뒤에 오는 경우 후위 연산자라고 합니다.

 

연산자 설명
++n n값이 1 증가하고 n을 사용
--n n값이 1 감소하고 n을 사용
n++ n을 사용하고 n값이 1 증가
n-- n을 사용하고 n값이 1 감소
int x = ++n; n값이 1 증가하고 n을 x에 할당
int x = n++; n을 x에 할당하고 n값이 1 증가

 

int a=3;
++a; // a=a+1
System.out.println(a); //4
a--; // a=a-1
System.out.println(a); //3
		
int x = 5;
int y = ++x; //x=6 증가 -> y=6 할당
System.out.println(x+" "+y); //6 6
		
int x2 = 5;
int y2 = x2++; //y2=5 할당, x2=6 증가
System.out.println(x2+" "+y2); //6 5

 

 

 

4. 비교연산자

 

두 값의 크기를 비교할 때 사용하며, 연산 결과는 반드시 true 또는 false가 나옵니다.

 

연산자 설명
a == b a가 b와 같은가?
a > b a가 b보다 큰가?
a >= b a가 b보다 크거나 같은가?
a < b a가 b보다 작은가?
a <= b a가 b보다 작거나 같은가?
a != b a가 b와 다른가?

 

int xyz=5;
int xyz2=3;
boolean result = xyz == xyz2;
System.out.println(result); //false
System.out.println(xyz == xyz2); //false
System.out.println(xyz != xyz2); //true
System.out.println(xyz > xyz2); //true
System.out.println(xyz >= xyz2); //true
System.out.println(xyz < xyz2); //false
System.out.println(xyz <= xyz2); //false

 

 

 

5. 논리연산자

 

true와 false값을 이용하여 논리연산을 수행합니다. 연산 결과는 반드시 true 또는 false가 나옵니다.

 

연산자 설명
&& AND 연산자
|| OR 연산자
! NOT 연산자

 

System.out.println(3==4 && 4>3);
		
System.out.println(! true); //false
System.out.println(! false); //true
		
System.out.println(true || true); //true
System.out.println(true || false); //true
System.out.println(false || true); //true
System.out.println(false || false); //false
		
System.out.println(true && true); //true
System.out.println(true && false); //false
System.out.println(false && true); //false
System.out.println(false && false); //false

 

* short circuit operation 

위의 항 중 일부에 노란색 밑줄이 쳐져 있는 것을 볼 수 있습니다.

 

마우스를 가져가 보면 Dead code 라고 뜹니다. 즉 실행되지 않은 코드라는 것입니다. || 연산자의 경우, 첫 번째 항의 값이 true인 경우 두 번째 항의 값을 검사하지 않아도 결과가 true입니다. && 연산자의 경우, 첫 번째 항의 값이 false인 경우 두 번째 항의 값을 검사하지 않아도 결과가 false입니다. 두 번째 항은 검사하지 않고 빠르게 결과값을 얻을 수 있어서 short circuit operation이라고 부릅니다. 

 

 

 

6. 3항 연산자

 

3개의 항으로 구성되는 연산자로, 조건식이 true이면 값1을 변수에 저장하고, false이면 값2를 변수에 저장합니다. 

변수 = (조건식)? 값1 : 값2;

 

다음과 같이 3항 연산자를 이용해 최대값을 구할 수 있습니다. 

int a =12;
int b =4;
int c =19;
		
int max = (a>b)? a:b;
System.out.println(max); //12
max = (max>c)? max:c;
System.out.println(max); //19

 

 

이상으로 자바에서 사용하는 다양한 연산자에 대해 정리해 보았습니다.

 

 

댓글