신규 블로그를 만들었습니다!

2020년 이후부터는 아래 블로그에서 활동합니다.

댓글로 질문 주셔도 확인하기 어려울 수 있습니다.

>> https://bluemiv.tistory.com/

코틀린에서의 가장 기본이 되는 이터레이션에는 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 사용방법

 

코틀린의 enum class 사용방법

enum class를 살펴보기전에 enum에 대한 개념을 간단하게 아는 것이 좋습니다. 만약 잘 알고 있는 분은 "여기"를 누르고 바로 코틀린의 enum class를 살펴보세요. JAVA의 enum 클래스 Java에서는 상수를 선언할때..

hongku.tistory.com

2019/02/11 - [Language/Kotlin] - 코틀린, enum class와 when 사용하기

 

코틀린, enum class와 when 사용하기

코틀린에는 when이라는 키워드가 있습니다. when은 Java에서 switch와 같은 역할을 합니다. 조금은 다른부분이 있지만, 거의 동일합니다. 글을 시작하기 앞서, enum class에 대해서 잘 모르시는 분은 아래 글을 읽..

hongku.tistory.com

2019/02/12 - [Language/Kotlin] - 코틀린의 is와 스마트 캐스트(Smart cast)란?

 

코틀린의 is와 스마트 캐스트(Smart cast)란?

코틀린에는 스마트 캐스트(Smart cast)가 있습니다. 간단하게 설명하면, 프로그래머가 굳이 원하는 타입으로 캐스팅 하지 않더라도, 컴파일러가 알아서 캐스팅해주는 것을 말합니다. 이해를 돕기 위해 천천히 예제..

hongku.tistory.com

 

  • 네이버 블러그 공유하기
  • 네이버 밴드에 공유하기
  • 페이스북 공유하기
  • 카카오스토리 공유하기