본문 바로가기
카테고리 없음

자바 - 연산자의 종류 : 이항연산자

by 스노위13 2022. 6. 7.

이항연산자란 : 피연산자가 2개인 연산자를 의미한다.

1. 문자열 연결 연산자(+)
문자열과 문자열을 서로 결합해주는 연산자이다. 다만 숫자도 문자열로 형변환이 되기 때문에 숫자 연산 후에 문자열과 연결하려고 할 때는 순서에 주의한다.

2. 산술연산자 (+,-,*,/,%)
피연산자들의 타입이 동일하지 않을 경우 타입을 일치시킨 후 연산을 수행한다.

1
2
3
4
5
6
7
8
9
int numFirst = 10;
int numSecond = 3;
 
System.out.println("더하기: "+(numFirst + numSecond));
System.out.println("빼기: "+(numFirst - numSecond));
System.out.println("곱하기: "+(numFirst * numSecond));
System.out.println("나누기: "+(numFirst / numSecond));
System.out.println("나머지: "+(numFirst % numSecond));
 
cs

 
이때 숫자 계산을 하는 부분을 ()로 묶은 이유는 그렇게 하지 않으면 문자열 연산이 먼저 실행되어서 계산이 되지 않기 때문이다. 이처럼 연산자를 사용할 때는 괄호를 사용해서 먼저 계산되어야 하는 부분을 묶어 주어야 한다. 이 외에도 형변환이 필요한 경우에는 아래와 같이 형변환을 해준다.

1) 피연산자가 모두 정수타입이고 int타입보다 작다면 모두 int타입으로 변환 후 수행
2) 피연산자가 모두 정수타입이고 long타입이 있다면 모두 long타입으로 변환 후 수행
3) 실수타입이 있다면 크기가 큰 실수 타입으로 변환 후 수행
하지만 정확한 계산을 하려면 정수를 사용하는 것이 좋다. 

형변환에 대한 자세한 내용은 아래의 문서를 참고해 주세요.
형변환 문서 링크

위의 연산은 다음과 같이 출력된다. 


여기서 %은 나눗셈을 했을 때 몫이 아닌 나머지 값을 돌려주는 연산자이다. 
특정 값이 짝수인지 홀수인지 확인할 때 많이 사용된다. 특정값 % 2를 하였을 때 0이면 짝수 1이면 홀수이다.
이를 사용해서 주민등록 번호를 분석하여 남자인지 여자인지를 확인하는 코드를 만들 수도 있다. 
주민등록 번호 확인 문서 링크

3. 비교연산자(<,<=,>,>=,==,!=)
두 개의 크기 또는 값이 같은지 다른지를 비교하여 boolean타입인 true/false을 산출한다. if와 같은 조건문과 for, whale과 같은 반복문에서 실행 흐름을 제어할 때 주로 사용된다.

4. 논리 연산자(&&, ||, &, |, ^ )
1) && 또는 & : AND 연산자로 두 가지 모두 충족하는 경우에만 true를 산출함
2) || 또는 | : OR 연산자로 둘 중 하나만 충족해도 true를 산출함
3) ^ : XOR 연산자로 하나는 true고 하나는 false일 때 즉, 양쪽의 boolean 값이 서로 다를 때만 true를 산출함

5. 대입연산자(=, +=, -=, /=, %=, &=, ^=, |=)
1) 단순 대입 연산자( = ): 우측의 값을 단순히 좌측 변수에 저장
2) 복합 대입 연산자( +=, -=, /=, %=, &=, ^=, |= ) : 우측의 값을 변수의 값에서 각각의 산술연산이나 논리 연산을 한 후에 그 결과를 변수에 저장

예시 

1
2
3
4
5
6
7
8
9
10
11
12
int numTen = 10;
 
numTen += 34// 34 더하기
System.out.println(numTen);
numTen -= 22// 22 빼기
System.out.println(numTen);
numTen *= 3;  // 3 곱하기
System.out.println(numTen);
numTen /= 6;  // 6 나누기
System.out.println(numTen);
numTen %= 3;  // 3으로 나눴을 때 나머지
System.out.println(numTen);
cs


실행 결과 

이 외에도 비트연산자(비트 논리 연산자, 비트 이동 연산자)가 있는데 이건 나중에 2진수를 다루면서 서술하기로 하자. 

댓글