연산이란? (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일 때만 후조건을 실행함) |
조건 안에 조건을 부여하고 싶을 때, 유용하게 사용할 수 있다.
(조건문 안에 조건문 넣기)
이외에도 비트연산자 조건연산자 등 연산자의 종류는 더 많지만,
오늘 포스팅은 비교적 가벼우면서 실용성있는 내용만을 다루는 목적이므로 제외하였다.
연산자를 공부하다보면, 수학적인 내용을 많이 다룬다는 것을 느끼게 된다.
수포자 + 문과생이었던 본인에게는 너무나 무거운 내용이었던 것 같다.
'Java (자바)' 카테고리의 다른 글
[Java] 반복문 - for 문 / 도형 만들기(마름모, 별, 원) (0) | 2022.04.17 |
---|---|
[Java] 조건문 - if / else if / else 문 + 예외처리 (0) | 2022.04.17 |
[Java] 자바 스캐너 (Scanner) - 콘솔창에 텍스트 입력 (0) | 2022.04.14 |
[Java] 자바 주석 사용하기 (0) | 2022.04.14 |
[Java] 자바 출력문 print / println ( + 줄바꿈 \n,\r,\r\n ) (0) | 2022.04.14 |