Welcome to Wesley & Harry's Traveling & Programming

IT Program/Java Basic

자바(java) 연산자 & 연산자 종류 & 단항연산자 & 이항연산자 & 삼항연산자

Wesley & Harry 2022. 2. 28. 18:48
반응형

연산이란 데이터를 처리하여 결과를 산출하는 것을 연산이라한다.

연산자란 연산에 사용되는 표시나 기호를 연산자라 칭한다.

피연산자란 연산되는 데이터를 말한다.

아래 예시를 살펴보자

x + y
x - y
x * y + z
x == y

위 연산식에서 

+, -, *, ==

는 연산자이고

x, y, z

는 피연산자이다.

 

연산자는 피연산자를 연산해서 값을 나타내는데, 나오는 값은 연산자별로 다르게 나타난다.

산술 연산자일 경우 숫자타입으로 결과값이 나타나고, 비교연산자와 논리연산자는 논리타입으로 나타난다.

여기서 논리 타입이란 boolean을 뜻하며 true와 false로 나타낸다.

다양한 연산자의 종류를 알아보자.

 

연산자 종류 연산자 피연산자 수 산출값 기능 설명
산술 +, -, *, %, / 이항 숫자 사칙연산 및 계산
부호 +, - 단항 숫자 음수와 양수 부호
문자열 + 이항 문자열 두 문자열 연결
대입 =, +=, -=, *=, /=,
%=, &=, ^=, |=, <<=,
>>=, >>>=
이항 다양하다 우측 값을 좌측에 대입
증감 ++, -- 단항 숫자 1만큼 증가/감소
비교 ==, !=, >, <, >=, <=,
instanceof
이항 boolean(논리) 값 비교
논리 !, &, |, &&, || 단항, 이항 boolean(논리) 논리적 NOT, AND, OR
조건 (조건식) ? A : B 삼항 다양하다 조건식에 따라 A또는 B
비트 ~, &, |, ^ 단항, 이항 숫자, boolean(논리) 비트 NOT, AND, OR,
XOR 연산
쉬프트 <<, >>, >>> 이항 숫자 비트를 좌측/우측으로 이동

위 표를 보고 단항, 이항, 삼항 연산자의 뜻을 알아보자.

우선 단항연산자이다.

단항연산자를 이해하기 가장 쉬운 연산자는 증감 연산자이다.

해당 코드를 보자.

int a = 1;
a++;
System.out.println(a);

증감 연산자 ++은 숫자 하나를 더 증가 시키는 역할을 가지고있다.

해당 코드의 결과값을 어떠할까.

말 그대로 증감을 시키는 코드이기 때문에 답은 2가 나온다. eclipse를 통해 확인해보자. 아래와 같이 나온것을 확인할 수 있다.

단 하나의 피연산자 만으로 연산이 되었다. 이것이 바로 단항 연산자라고 할 수 있다.


다음은 이항 연산자를 알아보자.

가장 간단하게 알아볼 수 있는 이항 연산자는 산술 연산자이다.

아래 코드를 보자.

int a = 1;
int b = 2;
int c; 
c = a + b;

아래 코드는 a에 1, b에 2를 저장한 후

c의 데이터 타입을 int로 설정한 뒤

c에 a의 값과 b의 값을 더해서 저장하는 코드이다.

우리는 초등학교 때 배웠다시피 답은 3이라는 사실을 알고있다.

c가 3이 나오기 위해선 a와 b

두가지가 필요하다. 이것이 이항 연산자를 뜻한다.(두가지의 피연산자가 필요한 연산)

우선 실행을 해보자. 늘 실행을 해보고 확인해보는 습관을 기르자.

답이 3이 나오는걸 콘솔을 통해 알 수 있다.

이렇게 두개의 피연산자를 통해 연산하는 연산자를 이항연산자라 칭한다.


다음은 삼항연산자이다.

나는 자바를 시작하기 전 삼항연산자 라는것에 대해 잘 몰랐다.

삼항 연산자는 마찬가지로 피연산자가 세개 필요한것이다.

하지만 여기엔 a,b,c 세가지가 필요한것이 아니라

조건식, b, c가 필요하다.

삼항 연산자는 조건 연산자라 칭할수도 있다.

게시글의 맨위에 있는 표를 확인해보자.

(조건식) ? A : B 라는 형태를 가지고있다.

우리는 이 식을 어떻게 사용하고 해석해야할까?

아래의 코드를 살펴보자.

int a = 1;
int b = 2;
int sum; 
char c;
sum = a + b;
c = (sum>10)? 'A' : 'B';
System.out.println(c);

코드의 뜻은 이러하다.

1. int 타입 설정한 a에 1을 저장하고

2. int 타입 설정한 b에 2를 저장하고

3. sum은 더한값을 저장할테니 int 타입만 지정을 해주고

4. c 또한 삼항 연산자의 결과값을 저장할테니 문자 char 타입을 지정해준뒤

5. sum에 이항 연산자 +를 이용하여 a와 b의 값을 더해준다.

6. c에 삼항연산자의 연산 결과를 저장한다                         c =

 sum의 조건식 sum이 10보다 크냐? 라고 물어보는 부분       (sum > 10)? 

 해당 조건식이 맞다면 'A', 해당 조건식이 틀리다면 'B'          'A' : 'B'

7. c의 연산값 출력

아래 결과를 통해 알아보자.

sum의 결과값을 미리 알고 확인하기 위해 System.out.println(sum); 구문을 추가했다.

sum의 값은 3이기 때문에 삼항연산자를 위 코드와 같이 돌렸을 때

노란 네모 부분의 조건식 sum이 10보다 크냐? 를 물었을 때

맞다면 초록네모('A')가 c에 저장되는것이고, 틀리다면 빨간네모('B')가 c에 저장되는 것이다.

이로써 삼항 연산자까지 알아보았다.

삼항 연산자는 배운 뒤 시간이 지나면 헷갈릴 때가 있다.

하지만 형태만 알아둔 뒤 코드를 적어서 테스트 함으로써 자신이 긴가민가 했던 부분을 간단한 코드 작성을 통해 알아볼 수 있다.

A와 B처럼 char 형태도 가능하지만 다른 타입으로도 삼항 연산자를 사용 할 수 있다.

유용하게 써먹어보도록 하자.

 

반응형