주인장의 프로그래밍 개발 공부방

[Chapter 2 연산자] 1. 연산자(Operator) 본문

프로그래밍 기본 지식/Chapter 2 연산자

[Chapter 2 연산자] 1. 연산자(Operator)

거신 2019. 5. 13. 09:19

길었던 변수를 끝내고 이제부터는 연산자를 알아보도록 하자.

이해를 쉽게하기 위해 그리고 필수적인 부분을 중점적으로 알아보기 위해서

자세한 내용이 생략이 되었거나 내용 설명이 부족한 부분도 있었을 것이다.

하지만 그런 부분이 있더라도 자기가 직접 찾아보고 공부해보는 것도

좋은 습관이 될 수 있지 않을까 생각한다.

 

목표 : 연산자가 무엇인지와 뭐하는 것인지에 대해서 알 수 있다.

 

1. 연산자(Operator)란?

 

사실 이 질문은 굉장히 어이가 없을 수도 있다.

왜냐하면 우리가 초등학교에 입학해서 산수, 수학이라는 것을 배울 때부터

지금까지 거의 산소처럼 항상 있는 녀석이기 때문이다.

 

사칙연산.

+, -, x, ÷로 산술적인 연산을 하는데 사용하는 녀석들이다.

 

이거 뭐 작성자가 이 글을 보고 있는 사람들을 무시하는 것도 아니고 뭔가 싶겠지만

자바 프로그래밍에서도 이 연산자들을 그대로 쓰고

의미와 기능도 동일하다.

하지만 단순히 이런 사칙연산에 대해서만 공부하려고 작성자가 이렇게 손가락 아프게

이상한 글들을 쓰고 있진 않을 것이다.

프로그래밍에서는 좀 더 많고 다양한 연산자들을 사용하게 되는데 그 것들에 대해서 알아보자.

 

정확하게 연산자

어떠한 기능을 수행하는 기호

라는 정의를 가지고 있고 우리가 흔히 알고 있는 사칙연산에 쓰이는 연산자와

대상을 비교하는 연산자, 증감 연산자, 비트 연산자 등 다양한 연산자들이 존재하고 있다.

 

그런데 연산자의 종류에 대해서 알아보기 전에

먼저 알아야하는 것이 있다.

바로 연산의 주체와 대상이다.

 

2. 연산자(Operator)와 피연산자(Operand)

 

가령 예를 하나 들어보자.

 

+

 

여기 덧셈 기호가 있다.

덧셈 기호의 의미와 기능은 설명하지 않아도 아~~주 잘 알고 있을 것이라 생각한다.

그런데 우리가 보통 덧셈 기호를 사용할 때의 모습을 보면 다음과 같을 것이다.

 

3 + 4 = 7

 

이와 같이 더하려는 숫자가 필요한 것을 알 수 있는데

여기에서 덧셈 기호는 앞서 언급했던 연산자(Operator)라고 하고

더하는 숫자들, 3과 4피연산자(Operand)라고 한다.

보통 수학시간에 '항'이라고 배웠고

예시의 식을 다항식이라고 배웠을 것이다.

여기에서는 항이 2개니까 2항식이 되겠다.

그리고 프로그래밍에서는 피연산자에는 단순히 숫자 뿐만 아니라

변수, 상수, 리터럴 등의 값들이 들어갈 수도 있다.

 

갑자기 왜 다항식이니 뭐니 하는 소리를 하나 싶겠지만

다음에 나오는 내용과 관련이 있기 때문이다.

 

우리가 배우는 프로그래밍에는 항의 갯수, 즉, 피연산자의 갯수에 따라

연산자를 구분할 수가 있다.

 

크게 4가지로 구분할 수 있는데

피연산자가 하나라면 단항 연산자,

두 개라면 이항(2항) 연산자,

세 개라면 삼항(3항) 연산자라고 구분할 수가 있겠다.

그리고 특수하게 =(등호 기호)를 사용하는 대입 연산자가 있다.

 

항의 갯수, 다시 말해 피연산자의 갯수가 몇 개인가에 따라서 연산자의 이름이 달라진다는 것이다.

1개면 단항(1항), 2개면 2항, 3개면 3항.

굉장히 간단한 내용이다.

 

3. 연산자의 우선순위

 

우리가 연산자를 배우다보면 우선순위라는 것을 배우게 된다.

말그대로 뭐부터 계산할 건지에 대한 내용이다.

그런데 우리가 너무나도 당연하게도 잘 알고 있는 내용이다.

사실 굳이 알아보지 않아도 되는 내용이기 때문이다.

 

(1+4)x5+6÷7

 

과 같은 다항식이 있다고 했을 때

계산 순서는 우리가 너무나도 잘 알고 있다.

가장 먼저하는 것은 ( ) 안의 수식을 먼저 계산하고

곱셈과 나눗셈을 계산한 후 덧셈과 뺄셈을 하는 것이다.

이는 프로그래밍에서도 동일하다.

 

그러나 프로그래밍에서는 단순히 산술만 있는 것이 아니라

비교, 논리라는 개념도 함께 있기 때문에 조금은 복잡할 수도 있겠지만

실상 따지고 보면 이 것도 너무나도 간단한 내용이니 잠깐만 살펴보자.

 

예시를 들어 보면

비교 연산자에는 > 기호가 있다.

어느 쪽의 값이 더 큰지를 판단하는 기호이며,

&& 라는 기호가 있는데

논리 연산을 하는 기호가 되겠다.

 

x+3 > y-2

 

이러한 식이 있다면 우리가 가장 먼저 계산하는 부분은 어디일까?

너무나도 당연하겠지만 x+3을 계산하고 y-2를 계산할 것이다.

그 다음에 계산한 두 값을 가지고 '>'기호대로 어느 쪽이 큰지 작은지를 판단할 것이다.

그렇다면 논리 연산 기호를 사용해서

 

x > 3 && x < 5

 

라는 식이 있다면 이 역시도 x > 3을 먼저 판단하고 x < 5를 판단한 다음에

&&로 결과 값을 도출해낼 것이다.

위의 두 예시를 가지고 연산자의 우선순위를 말로 풀어 설명하면

 

산술 연산 -> 비교 연산 -> 논리 연산

 

의 순서로 연산을 한다는 것을 알 수가 있을 것이다.

너무나도 당연해서 사실 따로 설명할 필요가 있을까 싶기도 하다.

 

4. 마무리

 

프로그래밍에서도 수학과 동일하게 연산작업을 할 수 있고

우리들이 수학 시간에 배웠던 기호들 그대로 사용할 수가 있다.

계산하는 순서도 똑같기 때문에 사실상 어려운 부분은 크게 없을 것이라고 생각한다.

Comments