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

[Chapter 2 연산자] 2. 이항 연산자(Operator)의 종류 (산술, 비교, 논리) 본문

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

[Chapter 2 연산자] 2. 이항 연산자(Operator)의 종류 (산술, 비교, 논리)

거신 2019. 5. 14. 01:02

지난 시간에는 프로그래밍에서 연산자(Operator)가 무엇인지와

우선순위, 즉, 계산 순서에 대해서 알아봤다.

이번 시간에는 우리가 배우는 자바에서 사용하는 연산자들에 대해서 알아볼 것이다.

첫 번째로 이항(2항) 연산자에 대해서 알아보자.

 

목표 : 이항 연산자, 산술, 비교, 논리 연산자들의 의미와 기능을 이해한다.

 

1. 산술 연산자

 

우리가 가장 잘 알고 있는 연산자들이다.

바로 사칙연산에 쓰이는 +, -, x, ÷ 이다.

그런데 프로그래밍에서 조금 다른 모습으로 사용된다.

대표적인 +, -는 이 모습 그대로 사용하지만

x*로 사용하고 ÷/로 사용한다.

 

그리고 여기에서 새로운 연산자가 하나 등장하게 된다.

바로 %이다.

 

%나머지를 구하는 연산자가 되겠다.

조금은 생소할 수도 있겠지만 말그대로 나눗셈을 하고 나머지를 출력해주는 연산자이다.

 

간단히 예시를 들어보자면

 

5 % 3

 

으로 연산하면 2가 출력이 될 것이다.

5 나누기 3은 몫은 1이고 나머지는 2이기 때문이다.

 

다시 정리하면 산술 연산자에는

+, -, *, /, %

가 있고 여기에서 %는 나머지를 구하는 연산자이다.

 

2. 비교 연산자

 

이전에 연산자에 대해서 설명하면서 잠깐 언급이 된 내용인데

바로 비교 연산과 논리 연산이 그 것이다.

먼저 비교 연산자에 대해서 알아보자.

사실 비교 연산자도 이름이 약간 생소하겠지만

우리들이 수학시간에 많이 봤던 녀석들이 포진하고 있다.

 

대표적인 비교 연산자들을 보자면

(왼쪽 피연산자(좌항)를 기준으로)

>(크다, 초과), <(작다, 미만), >=(크거나 같다, 이상), <=(작거나 같다, 이하),

==(같다), !=(다르다)

로 구성되어 있다.

여기에서 초과, 미만, 이상, 이하는 이미 알고 있는 내용들이다.

그런데 여기에서도 생소한 녀석이 등장했다.

바로 ==!=인데 이 녀석들에 대해서 간단히 알아보자.

 

일단 ==!= 연산자는 모두

두 개의 피연산자를 비교를 해서 같은지, 다른지를 비교, 판단하는 연산자들이다.

그런데 이 기호들이 의미하는 것이 조금 다르다.

아니 애초에 다른 애들이니까 굳이 구분을 해놨겠지....

 

먼저 == 연산자

x == y

의 형태로 사용하는데

x와 y가 같으면 참(true), 다르면 거짓(false)를 출력한다.

 

반대로 != 연산자는 역시

x != y

의 형태로 사용하는데

== 연산자와는 반대로 x와 y가 다르면 참(true), 같으면 거짓(false)를 출력한다.

전혀 반대의 의미를 지니고 있고 결과도 다르게 출력하기 때문에 절대 헷갈리면 안된다.

(여기서 !는 not의 의미를 가지고 있는데 이 후에 더 자세하게 알아보자.)

 

그리고 비교 연산자들은 전부 결과 값을 truefalse로만 출력한다.

대상을 비교한 것이기 때문에 산술 값이 아닌 논리 값을 출력하는 것이다.

그리고 변수에서 배웠던 형변환이 필요시 발생한다는 것도 이왕이면 알아두자.

 

비교 연산자는 기본형 변수(boolean 제외)와 참조형 변수를 전부 사용가능한데

참조형 변수에서는 ==와 != 단 2개의 연산자만이 사용가능하다.

이유를 설명하자면 참조형 변수는 값, 리터럴을 가지고 있는 것이 아니라 주소 값을 가지고 있기 때문에

크다 작다를 비교할 수 없기 때문이다.

 

3. 논리 연산자

 

앞서 비교 연산자와 함께 언급되었던 녀석이다.

이 녀석은 말그대로 논리 연산을 하는 연산자인데

무슨 뜻이냐면 피연산자가 true나 false 또는 그러한 값을 가지고 있어야하고

결과 값도 당연히 true나 false로만 출력이 된다.

뭔가 조금 복잡한거 같은데 차근차근 한 번 알아보도록 하자.

 

먼저 논리 연산자에는 &&||가 있는데

&&논리 AND 연산자라고 부르며

||논리 OR 연산자라고 부른다.

이 부분은 논리식에 대해서 조금이나마 지식이 있다면 이해가 빠르겠지만

그렇지가 않다면 이해하기가 조금 힘들 수도 있을 것이다.

하지만 걱정하지 말자.

일단 보고 외우고 그 다음에 이해해도 된다.

 

1) &&(논리 AND 연산자)

먼저 && 연산자에 대해서 알아보자.

위의 표는 && 연산자의 결과를 표로 작성한 것이다.

이 표의 결과와 같이

&& 연산자의 경우에는

x와 y, 즉, 피연산자 2개가 모두 참(true)일 때결과가 참(true)이 되고

어느 쪽이든 적어도 하나의 거짓(false)가 존재한다면 결과는 무조건 거짓(false)이 된다.

 

2) ||(논리 OR 연산자)

그렇다면 이제 || 연산자에 대해서 알아보자.

역시 표로 작성해 보았다.

|| 연산자의 경우에는

x, y 두 피연산자 중 한 쪽이라도 참(true)이라면 결과는 무조건 참(true)이되고

두 피연산자가 모두 거짓(false)가 되어야결과가 거짓(false)이 되는 것을 알 수 있다.

 

처음 배운다면 꽤나 생소할 수도 있겠지만 프로그래밍이나 공학도에겐 굉장히 중요한 내용이므로

꼭 기억하고 있길 바란다.

이는 실제로 논리회로에서도 동일하기 때문에 컴퓨터 공학과나 공대생이라면 필수 지식이다.

 

4. 마무리

 

이번 시간에는 자바 프로그래밍에서 사용하는 수많은 연산자들 중에서

산술 연산자, 비교 연산자, 논리 연산자에 대해서 알아봤다.

아무것도 모르고 봤을 때는 조금 어려울 수도 있겠지만

생각보다 그리 어려운 내용이 아니라고 생각한다.

왜냐하면 이미 우리들이 중, 고등학교 수학에서 한 번 쯤은 만난 적이 있는 녀석들이기 때문이다.

결국 프로그래밍에서도 수학적인 의미를 그대로 담고 있다는 말이 되겠지.

Comments