[기초] 코틀린에서 반복문을 다루는 방법

정리

- for each문에서 Java는 콜론(:) Kotlin은 in을 사용한다
- 전통적인 for문에서 Kotlin은 등차수열과 in을 사용한다
- 그 외 for문, while문 do while문도 문법은 동일하다

 

for - each문

숫자가 들어있는 리스트를 하나씩 출력해보자

fun main() {
    val numbers = listOf(1L, 2L, 3L)
    for (number in numbers) {
    	println(number)
    }
}

 

Java와는 다르게 콜론(:) 대신 in을 사용한다.

in 뒤에는 추가적으로 Iterable이 구현된 타입이라면 모두 들어갈 수 있다.

 

전통적인 for문

fun main(){
    for (i in 1..3){
    	println(i)
    }
}

 

1..3 = 1부터 3까지라는 의미다

 

내려가는 경우에는?

fun main(){
    for (i in 3 downTo 1){
    	println(i)
    }
}

 

2칸씩 올라가는 경우는?

fun main(){
    for (i in 1..5 step 2){
    	println(i)
    }
}

 

Progression과 Range

.. 연산자

범위를 만들어내는 연산자

 

범위 = Range라는 클래스가 있고, 이 클래스는 등차수열(Progression)을 상속 받고 있다.

이 Progession은 기본적으로 step으로 1을 넣어주고 있다.

 

즉, 1..3 의 의미는 "1에서 시작하고 3으로 끝나는 등차수열을 만들어줘" 라는 의미이다.

  • 3 downTo 1 : 시작 값 = 3, 끝 값 = 1, 공차 = -1 인 등차수열
  • 1..5 step 2 : 시작 값 1 = , 끝 값 = 5, 공차 = 2 인 등차수열

여기서 사용한 downTostep도 함수이다(중위 호출 함수)

변수.함수이름(argument) 대신 변수 함수이름 argument

 

while문

fun main() {
    var i = 1
    while (i <= 3) {
    	println(i)
        i++
    }
}

i는 아래에서 변경되어야 하므로 val 대신 var로 써줘야 한다.

사용 법은 Java와 다르지 않다