본문 바로가기
Android/Kotlin 기초

Kotlin 기초 문법 2 - 연산자

by 2Plus 2020. 5. 16.

 오늘 포스팅에서는 Kotlin 기초 문법의 연산자에 대해 다뤄보려고 한다. 크게 기본 연산자인 산술 연산자, 증감 연산자, 비트 연산자, 비교 연산자, 논리 연산자 다섯 가지가 있다.

 

 

산술 연산자

 산술 연산자는 기본적인 가감승제를 수행할 수 있는 연산자를 말한다. 코틀린에서는 다섯 가지 산술 연산자(+, -, *, /, %)를 사용할 수 있다. 이 연산자들의 동작은 각각 다음과 같다.

 

연산자 사용 동작
+ a + b   a와 b를 더한 값
- a - b   a에서 b를 뺀 값
* a * b   a와 b를 곱한 값
/ a / b   a를 b로 나눈 값 (정수의 경우 나머지 버림)
% a % b   a를 b로 나눈 나머지

 

[Code]

 

 

[결과]

 

 

 표에 정리한 내용과 똑같이 연산이 되는 것을 확인할 수 있다. 산술 연산자는 사칙연산의 법칙을 따르기 때문에 사용할 때도 해당 부분을 인지하고 사용해야 한다. % 연산자 역시 나눗셈의 일종으로 취급되므로 이를 인지하면 된다.

 

 

증감 연산자

 증감 연산자로는 "++"과 "--"가 있다. 다른 언어와 완전히 동일하게 동작한다. "++"는 변수의 값을 1만큼 증가시킬 때 사용하고, "--"는 변수의 값을 1만큼 감소시킬 때 사용한다. 변수의 앞에 증감 연산자를 사용하면 해당 변수를 사용하기 전에 바로 증감 연산이 반영되고, 변수의 뒤에 증감 연산자를 사용하면 해당 변수가 포함되어 있는 표현식에서는 기존의 값이 사용되고 그 이후에 증감 연산이 반영된다.

[Code]

 

 

[결과]

 

 

 위의 예시를 처음부터 살펴보면, a++은 증감 연산자가 뒤에 붙어있기 때문에 출력되고 나서 1만큼 증가하고, --b는 증감 연산자가 앞에 붙어있기 때문에 먼저 감소된 후에 출력이 되는 것을 확인할 수 있다.

 

 

비트 연산자

 코틀린의 비트 연산자는 다른 언어에서의 비트 연산자와 모양이 다르게 생겼다.

 

연산자 (다른 언어의 경우) 사용 동작
and (&) a and b   비트 단위 and 연산
or (|) a or b   비트 단위 or 연산
xor (^) a xor b   비트 단위 xor 연산
.inv() (~) a.inv()   비트 단위로 반전
shl (<<) a shl b   왼쪽으로 b칸 비트 shift 연산
shr (>>) a shr b   오른쪽으로 b칸 비트 shift 연산
ushr (>>>) a ushr b   부호는 유지하고 오른쪽으로 비트 shift 연산

 

[Code]

 

 

[결과]

 

 

 표에 맞게 연산이 진행되는 것을 확인할 수 있다.

 

 

비교 연산자

 비교 연산자의 경우는 다른 언어들과 크게 다를 것이 없다. 한 가지 특이한 점이 있다면, 객체에서 비교 연산자를 사용하는 경우에는 "==" 연산자나 "!=" 연산자는 객체의 값들이 같은지를 비교한다. 실제 참조하고 있는 객체가 동일한지를 확인하려면 "===" 연산자나 "!==" 연산자를 사용하면 된다.
 코틀린의 비교 연산자들은 다음의 표를 참고하면 된다. 참고로 비교 연산자의 연산 결과는 항상 Boolean 타입이다.

 

연산자 사용 반환 값
== a == b   a와 b가 같으면 true, 아니면 false
!= a != b   a와 b가 다르면 true, 아니면 false
> a > b   a가 b보다 크면 true, 아니면 false
< a < b   a가 b보다 작으면 true, 아니면 false
>= a >= b   a가 b 이상이면 true, 아니면 false
<= a <= b   a가 b 이하이면 true, 아니면 false
=== a === b   a와 b가 참조하는 객체가 동일하면 true, 아니면 false
!== a !== b   a와 b가 참조하는 객체가 다르면 true, 아니면 false

 

 

논리 연산자

 Boolean 타입의 값들끼리 할 수 있는 연산을 수행하는 연산자이다. 이 부분도 표를 참고하면 간단하게 이해할 수 있다.

 

연산자 사용 반환 값
&& a && b   a, b 둘 다 true이면 true, 아니면 false
|| a || b   a, b 중 하나라도 true이면 true, 아니면 false
! !a   a의 Boolean 값 반전

 

 

반응형

댓글