본문 바로가기
쿤즈 Dev/Kotlin

[Kotlin] 코틀린에서 사용하는 연산자 알아보기(1)

by :)Koon 2022. 5. 10.

코틀린에서는 다른 언어와 마찬가지로 연산자가 있습니다. 다른 언어와 동일하게 사용하는 연산자가 있는 반면 다른 언어에 없는 연산자들도 있습니다.

이번 포스팅에서는 코틀린에서 사용하는 연산자에 대해서 알아볼게요.


코틀린에서 사용하는 연산자의 종류

코틀린에서는 아래와 같은 연산자들을 사용합니다.

  • 산술 연산자
  • 대입 연산자
  • 증가/감소 연산자
  • 비교 연산자
  • 논리 연산자
  • 비트 연산자

위와 같은 연산자들은 어떻게 사용하는지 알아보겠습니다.


산술 연산자

산술 연산자는 사칙 연산을 할 수 있는 기호들을 의미합니다. 예를들면 사칙 연산은 덧셈, 뺄셈, 곱셈, 나눗셈이 있습니다. 기호로는 +, -, *, / 입니다. 그리고 추가로 나머지 연산을 할 수 있는 %가 있습니다.

연산자 설명
+ 덧셈
- 뺄셈
* 곱셈
/ 나눗셈
% 나머지

산술 연산자는 눈으로만 봐도 어떤 기능을 하는지 알 수 있지만 실제로 예제를 통해서 알아볼게요.

package `02`

fun main(args: Array<String>) {
    val num1: Int = 10
    val num2: Int = 3

    println(num1 + num2) // 10 + 3 = 13
    println(num1 - num2) // 10 - 3 = 7
    println(num1 * num2) // 10 * 3 = 30
    println(num1 / num2) // 10 / 3 = 3
    println(num1 % num2) // 10 % 3 = 1
}

위 결과는 대부분 파악이 가능합니다. 다만 % 연산자의 경우는 나머지 연산입니다. 10 / 3은 몫이 3, 나머지가 1이죠. 그래서 10 % 3의 결과는 1이 되는 것입니다.


대입 연산자

대입 연산자는 지금까지 앞서 많이 사용해 왔습니다. 대입 연산자는 바로 등호(=)입니다. 등호의 오른쪽의 값을 왼쪽으로 대입하라는 의미입니다. 위 예제에서도 val num1: Int = 10에서 10을 num1에 대입하라는 의미가 되는 것이죠. 그래서 이 대입 연산자를 산술 연산자와 함께 사용할 수 있습니다.

연산자 설명
= 오른쪽 항을 왼쪽에 대입
+= 왼쪽항과 오른쪽항을 더해서 왼쪽항에 대입
-= 왼쪽항에서 오른쪽항을 빼서 왼쪽항에 대입
*= 왼쪽항과 오른쪽항을 곱해서 왼쪽항에 대입
/= 왼쪽항에서 오른쪽항을 나눈 결과를 왼쪽항에 대입
%= 왼쪽항에서 오른쪽항을 나눈 나머지를 왼쪽항에 대입

그럼 간단하게 대입연산자의 예를 보도록 하겠습니다.

package `02`

fun main(args: Array<String>) {
    var num1: Int = 10
    var num2: Int = 3

    num1 += num2 // 10 + 3 = 13
    println(num1)
    num1 -= num2 // 13 - 3 = 10
    println(num1)
    num1 *= num2 // 10 * 3 = 30
    println(num1)
    num1 /= num2 // 30 / 3 = 10
    println(num1)
    num1 %= num2 // 10 % 3 = 1
    println(num1)
}

연산자의 종류에 따라 양쪽 항을 계산하고 다시 왼쪽 항에 대입해 주는 연산자가 대입 연산자입니다.


증가 연산자 감소 연산자

증가 연산자와 감소 연산자는 1씩 더하거나 빼는 연산자입니다. 그래서 연산자의 종류는 두 가지뿐입니다.

연산자 설명
++ 변수 값에 1 증가
-- 변수 값에 1 감소

증가와 감소 연산자의 경우는 변수 앞 혹은 변수 뒤에 올 수 있습니다. 두 경우에 따라 값이 달라집니다. 예를 들어볼게요.

package `02`

fun main(args: Array<String>) {
    var num1: Int = 10
    var num2: Int = 3

    println("num1: ${num1++}") // num1: 10
    println("num2: ${++num2}") // num2: 4
    println("num1: $num1, num2: $num2") // num1: 11, num2: 4
}

num1의 경우는 변수 뒤에 증가 연산자를 붙여주었습니다. 따라서 현재 라인은 현재 값을 출력하고 그 이후에 값을 증가하는 것입니다. 그래서 첫 번째 num1의 값은 10입니다. num2의 경우는 우선 현재 라인에서 증가를 하고 출력합니다. 그래서 값은 4가 됩니다.

 

마지막 라인에서 num1의 결과를 보시면 11이 됩니다. 1만큼 증가가 출력 이후에 되었기 때문에 다음 라인으로 넘어가면 값이 증가됩니다. 따라서 증가 연산자 혹은 감소 연산자의 경우는 변수 앞, 뒤에 붙일 때 주의를 해주어야 합니다.


비교 연산자

비교 연산자는 크고 작음을 비교하는 연산자입니다. 두 개의 항 중에서 어떤 값이 더 큰지 비교할 수 있습니다. 그리고 비교의 결과를 true 혹은 false로 return 해줍니다.

연산자 설명
== 두 항이 같으면 true, 다르면 false
!= 두 항이 다르면 true, 같으면 false
=== 두 항이 참조하는 주소가 같으면 true, 다르면 false
!== 두 항이 참조하는 주소가 다르면 true, 같으면 false
> 왼쪽 항이 크면 true, 작거나 같으면 false
>= 왼쪽항이 크거나 같으면 true, 작으면 false
< 오른쪽 항이 크면 true, 작거나 같으면 false
<= 오른쪽 항이 크거나 같으면 true, 작으면 false

코틀린에는 참조하는 주소를 비교하는 연산자가 있습니다. 그럼 연산자들을 예를 들어서 알아볼게요.

package `02`

fun main(args: Array<String>) {
    val num1: Int? = 200
    val num2: Int? = 200
    val num3: Int = 30
    val num4: Int = 20

    println(num1 == num2) // 두 값이 같으므로 true
    println(num1 != num2) // 두 값이 같으므로 false
    println(num1 === num2) // 두 참조주소가 다르므로 false
    println(num1 !== num2) // 두 참조주소가 다르므로 true
    println(num3 > num4) // num3가 더 크므로 true
    println(num3 >= num4) // num3가 더 크므로 true
    println(num3 < num4) // num3가 더 크므로 false
    println(num3 <= num4) // num3가 더 크므로 false
}

논리 연산자

논리 연산자는 논리회로에서 나오는 연산자를 의미합니다. 여기서 회로를 볼 건 아니기 때문에 어떤 원리인지만 알면 됩니다. 논리 연산자에는 논리곱, 논리합, 부정 연산자로 나뉘어 있습니다.

연산자 설명
&& 논리곱으로 두 항이 모두 true일 경우 true. 나머지는 false
|| 논리합으로 두 항중 하나라도 true일 경우 true. 모두 false이면 false
! 부정 연산자로 true이면 false, false이면 true

논리 연산자는 보통 비교 연산자와 함께 사용합니다. 예를 들어볼게요.

package `02`

fun main(args: Array<String>) {
    val num1: Int = 5
    val num2: Int = 3
    val num3: Int = 2

    // (5>3) && (5>2) => true && true => true
    println( (num1 > num2) && (num1 > num3) ) 
    // (5>3) || (5<2) => true || false => true
    println( (num1 > num2) || (num1 < num2) )
    // !(5>3) => !true => false
    println( !(num1 > num2) )
}

논리 곱의 예를 보면 양쪽 두 항이 모두 true입니다. 그래서 결과는 true입니다.

논리합의 예를 보면 왼쪽 항은 true, 오른쪽 항은 false입니다. 두 항중 하나라도 true이면 true이기 때문에 결과는 true입니다. 

부정 연산자를 보면 true에 부정의 표현인 !가 있으므로 결과는 false입니다.


이번 포스팅에서는 코틀린의 연산자 중 산술, 대입, 증/감, 비교, 논리에 대해서 알아보았습니다. 비트 연산자는 설명할 내용이 많아서 다음 포스팅에서 이어갈 예정입니다. 도움이 되셨으면 합니다. 이상입니다.

댓글