관리 메뉴

Bbaktaeho

코틀린(Kotlin) 11. 반복문(for, while, do-while) 본문

프로그래밍 (Programming)/코틀린 (Kotlin)

코틀린(Kotlin) 11. 반복문(for, while, do-while)

Bbaktaeho 2019. 1. 31. 14:14
반응형

for)

코틀린에서 for 루프는 in 연산자를 사용하여 처리한다.

먼저 코틀린 배열을 모르시는 분은 https://bbaktaeho-95.tistory.com/6 참고하시면 된다.

간단한 예제를 보자.

1
2
3
4
fun main(args: Array<String>){
    val arr = arrayOf(1,2,3)
    for(item in arr) println(item) //item은 프로그래머가 선언한 것으로 카운터라고 한다.
}
cs

1
2
3
1
2
3
cs

Int 타입 배열 arr 를 선언하고 1,2,3 순으로 초기화하고 for 루프로 첫 번째 요소부터 마지막 요소까지 item이 받아와서 출력했다. 마지막 요소가 출력되면 for문은 더 이상 반복할게 없어서 종료한다.

이때 루프의 반복 실행과 arr의 다음 요소를 읽는 것은 자동으로 처리된다.(나중에 다시 언급하겠다)

여기서 우리가 알고 있는 in 연산자와 좀 다르다. for에서는 item이 arr[0] 부터 마지막까지 반복하라는 의미다.

다른 예제를 보자.

1
2
3
4
5
6
fun main(args: Array<String>){
    val arr = arrayOf("하나","둘","셋")
    for(index in arr.indices) println(index)
    for(index in arr.indices) println(arr[index])
}
cs

1
2
3
4
5
6
0
1
2
하나
cs

이전 예제에서 배열의 요소만 받아왔는데 indices를 사용해서 배열의 인덱스를 받아올 수도 있다. 참고로 indices는 IntRange 타입이다.

범위 연산자를 모르시는 분은 https://bbaktaeho-95.tistory.com/16 참고하시면 된다.

또 다른 예제를 보자.

1
2
3
fun main(args: Array<String>){
    for(item in 0..3println(item)
}
cs

1
2
3
4
0
1
2
3
cs

여기서 for문은 item이 0부터 3까지 반복하라는 의미다. 이 역시 범위 연산자이므로 모르시는 분은 위의 링크를 참고하시면 된다.

또 또 다른 예제를 보자.

1
2
3
4
5
for (i in 1..10) {} //1 부터 1씩 증가하며 10까지 반복한다.
for (i in 1 until 10) {} //1부터 1씩 증가하며 10을 제외하고 반복한다.(9까지)
for (i in 1..10 step 2) {} //1부터 2씩 증가하며 10까지 반복한다.
for (i in 10 downTo 1) {} //10부터 1씩 감소하며 1까지 반복한다.
for (i in 10 downTo 1 step 2) {} //10부터 2씩 감소하며 1까지 반복한다.
cs

여기서 상수 대신 변수로 지정해도 된다.

while, do-while)

while과 do-while은 자바와 같은 방식이다.

바로 예제를 보자.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
fun main(args: Array<String>){
    val arr = listOf("하나""둘""셋")
    var index = 0
    while (index < arr.size){
        println(arr[index])
        index++
    }
    index = 0
    do{
        println(arr[index])
        index++
    }while (index < arr.size)
}
cs

while문은 루프를 시작하기 전에 조건을 검사하고 do-while문은 일단 한번 루프를 실행한 후 조건을 검사한다는 것이 둘의 차이점이다.


반응형