Java (자바)

[Java] 자바 연산자 - 연산자의 종류와 활용법

Oscar:) 2022. 4. 14. 19:19

연산이란? (Operation)

수, 함수 등에서 일정한 법칙에 따라 결과를 내는 행위이다.

 

연산에 사용되는 표시나 기호를 연산자(operator)라고 한다.

연산되는 데이터는 피연산자(operand)라고 한다.

 

연산자도 공부할 내용이 많다보니 잘 이해하고 싶다면,

연산자와 피연산자를 명확히 구분하여 기억하는게 좋다.

 

 

다양한 연산자 중에서, 아래 5가지 연산자에 대해 포스팅하겠다.

-산술연산자, 증감연산자, 비교연산자, 대입연산자, 논리연산자-

 


 

산술연산자

 

가장 기본적인 연산자로, 흔히 알고 있는 사칙연산(+,-,*,/)을 생각하면 쉽다.

하지만 저 사칙연산을 제외하고도 %연산자가 존재한다.

(사칙연산은 정말 기본적이므로, 따로 포스팅하지 않겠다)

 

%연산자는 나눗셈을 하고 남은 나머지 값을 반환해준다.

 

10을 4로 나눴을 때의 값은 2이고, 나머지 값은 2이다.

10을 1로 나눴을 때의 값은 10이고, 나머지 값은 없다.

 

% 2 를 사용한다면, 모든 자연수를 상대로 0 또는 1의 나머지 값을 반환할 것이다.

이를 응용하여 홀, 짝을 구분하는 로직을 구현할 수 있다고 생각한다.


증감연산자

 

증감이라는 말 그대로, 증가와 감소이며, 두 종류가 있다.

++ : 값을 1씩 증가시킨다.

-- : 값을 1씩 감소시킨다.

 

별 것 없어 보이지만, 연산자의 위치에 따라서 결과값이 달라질 수 있기 때문에 알아두자.

 

a라는 변수에 5라는 값을 담고, b라는 변수에 a++ 연산을 담아서

5번 반복하는 반복문 안에 선언하였다.

 

위에서 보이는대로 5 6 7 8 9 가 출력되었다.

 


이번에는 증감연산에서 a의 위치를 바꿔주었다.

 

a라는 변수에 5라는 값을 담고, b라는 변수에 ++a 연산을 담아서

5번 반복하는 반복문 안에 선언하였다.

 

이번에는 6 7 8 9 10 이 출력되었다.

 

a++ : 연산을 먼저 실행한 후, 피연산자의 값 1증가
++a : 먼저 피연산자의 값 1증가 후, 연산을 실행

(-- 연산자도 마찬가지이다)

 


비교연산자

 

값을 비교할 때 쓰이는 연산자로서, 결과값은 boolean(논리형)으로 결정된다.

 

비교연산자의 결과값이 맞는지 틀린지 확인하는 것은

참인지 거짓인지 (true / false) 확인하는 것과 같은 원리이기 때문이다.

피연산자 > 피연산자가 더 크다
< 피연산자가 더 작다
>= 피연산자가 크거나 같다
<= 피연산자가 작거나 같다
== 피연산자와 같다
!= 피연산자와 다르다

 

앞서 포스팅 했던 자료형 게시글에서 논리형 자료형은(boolean)

조건문, 반복문 등에서의 조건식으로 주로 사용된다고 언급한 바 있다.

 

마찬가지로, 비교연산자 역시 조건식에서 많이 사용된다.

 

반복문과 조건문에서의 비교연산자 응용

a의 값을 0으로 선언하고, 6번 반복하는 반복문 안에서

++ 증감연산자를 이용해 a의 값을 1씩 증가시켰다.

그리고 조건문을 걸었는데, 이 조건식에 비교연산자를 사용하였다.

 

 

조건문을 간단히 해석하면 다음과 같다.

  • a가 3보다 작거나 같을 때 별모양과 함께 출력
  • a가 3보다 클 때 하트모양과 함께 출력

 

(반복문의 조건식에도 비교연산자를 사용하였는데, 이는 for문 포스팅에서 따로 공부하도록 하자)

 


비교연산자  !=연산자, ==연산자

 

!=연산자와 ==연산자

비교연산자 중에서,  != 연산자를 잘 기억해야 한다.

자바에서 !(느낌표)는 부정적인 의미를 띈다.

 

비교연산자 뿐만 아니라, 조금 더 폭넓은 기능에서도 사용되는 경우가 있으니

'아니다', '같지 않다' 등 부정의 의미를 사용할 때는 ! 를 기억하자.

 

 

==연산자는 "같다" 라는 의미로 사용되는데, =연산자와는 엄연히 다르다.

그 내용은 대입연산자에서 계속 다뤄보겠다.

 


대입연산자

 

대입연산자는 말 그대로, 연산한 결과를 대입한다.

 

피연산자 = 피연산자에 대입한다
+= 피연산자에 더해서 대입한다
-= 피연산자에 빼서 대입한다
*= 피연산자에 곱해서 대입한다
/= 피연산자에 나눠서 대입한다
%= 피연산자에 나눈뒤 나머지를 대입한다

 

코딩의 세계에 발을 들이기 전에는 '=' 기호를 "같다" 라는 의미로 해석했을 것이다.

하지만 "같다" 라는 의미는 비교연산자인 '==' 이녀석이 차지하고 있다.

 

우리는 '=' 기호를 "대입한다"라고 해석해야 한다.

int a = 1;
위와 같은 코드로 예시를 들고, 코드를 읽어보겠다.

X : "int타입 변수 a는 1이다"
O : "int타입 변수 a에 1을 대입하겠다"

+=연산자 응용

 

5번 반복하는 반복문 안에 a+=2 연산을 해준 코드이다.

결과값으로 1 3 5 7 9 가 출력된 것을 확인할 수 있다.

 

'a=a+2' 이렇게 작성하던 코드를 대입연산자를 활용하여

'a+=2' 이렇게 작성할 수 있게 되었다.

 


논리연산자

 

피연산자의 값이 boolean(논리형)인 논리 값으로 또다시 조건 연산한다. 

 

정의가 너무 어렵게 되어있지만, 아래 표를 보면 이해가 빠를것이다.

피연산자 & 조건이 모두 true일 때만 결과값이 true
| 조건 중 하나라도 true라면 결과값이 true
! true는 false로, false는 true로 나타냄 (청개구리;)
&& 선조건이 true일 때만 후조건을 실행함
(선조건이 false이면 후조건 실행X)
|| 선조건이 true이면 후조건을 실행X
(선조건이 false일 때만 후조건을 실행함)

 

조건 안에 조건을 부여하고 싶을 때, 유용하게 사용할 수 있다.

(조건문 안에 조건문 넣기)

 


 

 

이외에도 비트연산자 조건연산자 등 연산자의 종류는 더 많지만,

오늘 포스팅은 비교적 가벼우면서 실용성있는 내용만을 다루는 목적이므로 제외하였다.

 

 

연산자를 공부하다보면, 수학적인 내용을 많이 다룬다는 것을 느끼게 된다.

수포자 + 문과생이었던 본인에게는 너무나 무거운 내용이었던 것 같다.