개발일지

Kotlin in A..Z (6) - 연산자 본문

Kotlin (코틀린)

Kotlin in A..Z (6) - 연산자

강태종 2020. 7. 10. 23:40

- 기본 연산자

연산자 의미
+ 더하기
- 빼기
* 곱하기
/ 나누기
% 나머지

 

코드

println(1 + 2)
println(2 - 1)
println(1 * 2)
println(4 / 2)
println(5 % 2)

 

결과

3
1
2
2
1

- 대입 연산자

연산자 의미
= 오른쪽 항을 왼쪽 항에 대입
+= 왼쪽 항에 오른쪽 항을 더한 후 대입
-= 왼쪽 항에 오른쪽 항을 뺀 후 대입
*= 왼쪽 항에 오른쪽 항을 곱한 후 대입
/= 왼쪽 항에 오른쪽 항을 나눈 후 대입
%= 왼쪽 항에 오른쪽 항을 나머지 연한 후 대입

 

코드

var num:Int = 0

num = 10
println(num)

num += 10
println(num)

num -= 5
println(num)

num *= 2
println(num)

num /= 10
println(num)

num %= 2
println(num)

 

결과

10
20
15
30
3
1

- 증가 연산자

연산자 의미
++ 항의 값을 1 증가
-- 항의 값을 1 감소

 

코드

// 후위 증가 연산자 num1의 값을 반환하고 num1의 값을 1 증가시킨다.
var num1 = 5
var result1 = num1++
println("num : $num1, result : $result1")

// 전위 증가 연산자 num2의 값을 1 증가시키고 그 값을 반환한다
var num2 = 5
var result2 = ++num2
println("num : $num2, result : $result2")

// 후위 가감 연산자 num3의 값을 반환하고 num3의 값을 1 감소시킨다.
var num3 = 5
var result3 = num1--
println("num : $num3, result : $result3")

//전위 가감 연산자 num4의 값을 1 감소시키고 그 값을 반환한다
var num4 = 5
var result4 = num4++
println("num : $num4, result : $result4")

 

결과

num : 6, result : 5
num : 6, result : 6
num : 5, result : 6
num : 6, result : 5

- 비교 연산자

연산자 의미
> 왼쪽이 크면 true 아니면 false
< 오른쪽이 크면 true 아니면 false
>= 왼쪽이 크거나 같으면 true 아니면 false
<= 오른쪽이 크거나 같으면 true 아니면 false
== 같으면 true 아니면 false
!= 다르면 true 아니면 false
=== 참조 값이 같으면 true 아니면 false
!== 참조 값이 다르면 true 아니면 false

 

코드

println(1 > 2)
println(1 < 2)
println(1 >= 2)
println(1 <= 2)
println(1 == 2)
println(1 != 2)
println(1 === 2)
println(1 !== 2)

 

결과

false
true
false
true
false
true
false
true

- 논리 연산자

연산자 의미
&& 두 항이 모두 true일 때 true 아니면 false
|| 하나의 항이라도 true이면 true 아니면 false
! true이면 false, false이면 true

 

코드

println(true && false)
println(true || false)
println(!true)

 

결과

false
true
false

- 비트 연산자

연산자 의미
shl 왼쪽으로 비트를 옮김 (부호 있음)
shr 오른쪽으로 비트를 옮김 (부호 있음)
ushr 오른쪽으로 비트를 옮김
and 논리곱 연산
or 논리합 연산
xor 베타적 연산
inv 비트 반전 연산

 

코드

println("1 shl 2 = ${1 shl 2}")
println("1.shl(2) = ${1.shl(2)}")
println("100 shr 2 = ${100 shr 2}")
println("100.shr(2) = ${100.shr(2)}")
println("-1 ushr 2 = ${-1 ushr 2}")
println("(-1).ushr(2) = ${(-1).ushr(2)}")
println("9 and 8 = ${9 and 8}")
println("9.and(8) = ${9.and(8)}")
println("9 or 8 = ${9 or 8}")
println("9.or(8) = ${9.or(8)}")
println("9 xor 8 = ${9 xor 8}")
println("9.xor(8) = ${9.xor(8)}")
println("9.inv() = ${9.inv()}")

 

결과

1 shl 2 = 4
1.shl(2) = 4
100 shr 2 = 25
100.shr(2) = 25
-1 ushr 2 = 1073741823
(-1).ushr(2) = 1073741823
9 and 8 = 8
9.and(8) = 8
9 or 8 = 9
9.or(8) = 9
9 xor 8 = 1
9.xor(8) = 1
9.inv() = -10

- 범위 연산자

연산자 의미
A..B A에서 B까지 1만큼 증가하여 포함된 범위
A..B step C A에서 B까지 C만큼 증가하여 포함된 범위
A until B A에서 B - 1까지 1만큼 증가하여 포함된 범위
A until B step C A에서 B - 1까지 C만큼 증가하여 포함된 범위
A downTo B A에서 B까지 1만큼 감소하여 포함된 범위
A downTo B step C A에서 B까지 C만큼 감소하여 포함된 범위

 

코드

for(i in 1..5) print(i)
println()
for(i in 1..5 step 2) print(i)
println()
for(i in 1 until 5) print(i)
println()
for(i in 1 until 5 step 2) print(i)
println()
for(i in 5 downTo 1) print(i)
println()
for(i in 5 downTo 1 step 2) print(i)
println()

 

결과

12345
135
1234
13
54321
531

- in 연산자

연산자 의미
A in RANGE A가 RANGE안에 속해있으면 true 아니면 false

 

코드

println(1 in 1..10)

 

결과

true

'Kotlin (코틀린)' 카테고리의 다른 글

Kotlin in A..Z (8) - 람다  (0) 2020.07.11
Kotlin in A..Z (7) - 함수  (0) 2020.07.11
Kotlin in A..Z (5) - 자료형 비교, 검사, 변환  (0) 2020.07.10
Kotlin in A..Z (4) - null  (0) 2020.07.10
Kotlin in A..Z (3) - 문자열  (0) 2020.07.08
Comments