신규 블로그를 만들었습니다!
코틀린에서의 가장 기본이 되는 이터레이션에는 for와 while 루프가 있습니다. while문과 같은 경우는 Java와 동일하기 때문에 따로 설명할 필요는 없을 것 같습니다.
while문
그래도 간단하게 설명하면, while문과 do..while이 있습니다.
while문은 아래와 같이 사용합니다.
while (조건식) {
...
}
do..while문은 아래와 같이 사용합니다.
do {
...
} while(조건식)
간단하게 살펴봤지만 Java와 똑같다는것을 알 수 있습니다. for문에 대해 살펴봅시다.
코틀린의 for문
코틀린에서의 for문은 Java의 for-each에 해당하는 형태만 존재합니다. 아래 식을 참고하시면 이해하기 쉽습니다.
for <아이템> in <원소들>
루프에서는 초기의 값, 증가 값, 최종 값을 이용해서 반복수행을 합니다. 코틀린에서는 범위(range)를 이용해서 반복문을 수행합니다. 범위를 표현할때는 ..연산자를 사용합니다. 형태는 아래와 같습니다.
val oneToTen = 1..10
이때, 범위는 폐구간(양쪽 모두 포함)을 뜻합니다. 이해하기 쉽게 예제를 살펴봅시다.
fun main(args: Array<String>){
for (i in 1..10) {
println(i)
}
}
1..10은 1, 2, 3, 4, 5, 6, 7, 8, 9, 10과 같습니다.
실행 결과
1
2
.. 생략 ..
9
10
for문을 익히기 위해 FizzBuzz라는 게임 예제를 통해 살펴봅시다.
예제: FizzBuzz 게임
간단하게 게임에 대해 설명하면.. 숫자가 3으로 나눠 떨어지면 Fizz, 5로 나눠떨어지면 Buzz, 15로 떨어지면 FizzBuzz입니다. (매우 쉬운 게임입니다.)
fun fizzBuzz(i: Int) = when {
i % 15 == 0 -> "FizzBuzz"
i % 3 == 0 -> "Fizz"
i % 5 == 0 -> "Buzz"
else -> "${i}"
}
fun main(args: Array<String>){
for (i in 1..100) {
println(fizzBuzz(i))
}
}
8번째 ~ 10번째 줄과 같이 1부터 100까지 for문을 돌릴 수 있습니다.
실행결과
1
2
Fizz
.. 생략 ..
59
FizzBuzz
61
.. 생략 ..
98
Fizz
Buzz
이번에는 순서를 바꿔서 거꾸고 for문을 돌려봅시다.
for문 거꾸로 수행하기
downTo라는 키워드를 사용하면 됩니다.
fun main(args: Array<String>){
for (i in 100 downTo 1) {
println(fizzBuzz(i))
}
}
실행 결과
Buzz
Fizz
98
97
.. 생략 ..
Fizz
2
1
실행경과를 보면 알 수 있듯이, 100부터 거꾸로 수행한 것을 알 수 있습니다.
이번에는 거꾸로 수행하면서, 짝수만 실행해보도록 하겠습니다.
for문 짝수만 실행
step이라는 키워드를 사용하면 됩니다. 짝수를 수행하기 위해 step에 2를 넣어서 반복수행합니다.
fun main(args: Array<String>){
for (i in 100 downTo 1 step 2) {
println(fizzBuzz(i))
}
}
실행 결과
Buzz
98
.. 생략 ..
Fizz
4
2
위에서는 짝수만 수행하려고 step에 2를 넣었지만, 원하는 만큼 step에 숫자를 넣어서 반복수행 할 수 있습니다.
Until 사용방법
만약 1..10과 같이 양쪽 모두 포함하는 경우가 아닌 맨 끝은 포함하지 않고 싶을때 until을 사용하면 됩니다. 예를들어서,
fun main(args: Array<String>){
for (i in 1 until 10){
println(i)
}
}
위와 같이 until을 사용하면 1, 2, 3, 4, 5, 6, 7, 8, 9 까지만 값이 나옵니다. 즉, 맨 마지막은 포함이 안됩니다.
본 글은 Dmitry Jemerov, Svetlana Isakova의 "Kotlin in action" 책을 참고하여 작성한 글입니다.
다른 글
2019/02/10 - [Language/Kotlin] - 코틀린의 enum class 사용방법
2019/02/11 - [Language/Kotlin] - 코틀린, enum class와 when 사용하기
2019/02/12 - [Language/Kotlin] - 코틀린의 is와 스마트 캐스트(Smart cast)란?
'Language > Kotlin' 카테고리의 다른 글
코틀린 설치, 인텔리제이와 JDK 설치 (0) | 2019.02.15 |
---|---|
코틀린 맵(map) 이터레이터 (0) | 2019.02.14 |
코틀린의 is와 스마트 캐스트(Smart cast)란? (2) | 2019.02.12 |
코틀린, enum class와 when 사용하기 (0) | 2019.02.11 |
코틀린의 enum class 사용방법 (0) | 2019.02.10 |
최근댓글