Kotlin

[Kotlin] 코틀린 반복문 for, while, do while 반복문 활용

Meezzi 2023. 5. 8. 22:42
728x90

 

 

 

 

 

오늘은 코틀린에서 반복문을 사용하는 방법에 대해 알아보자.

 

 

코틀린에서는 다양한 형태의 반복문을 제공한다. 대표적으로 for, while, do-while 등이 있다.

 

 

이번 포스팅에서는 for, while, do-while에 대해 알아볼 것이다. 

 

 

 

1. for 문

 

1) for 기본 사용

for (item in collection) {

    // 반복할 코드
}

for의 기본 사용법은 다음과 같다.

 

여기서 collection은 반복할 대상 컬렉션이다.

item은 컬렉션에서 추출된 요소를 나타내는 변수이다.

 

즉, for문은 컬렉션의 모든 요소를 순서대로 추출하여 'item' 변수에 저장하고, 그 내용을 반복할 코드에서 사용한다.

 

 

컬렉션이란?

더보기

컬렉션(Collection)은 자료구조를 다루는 데 사용되는 객체들의 집합이다.

 

크게 리스트(List), 집합, 맵으로 분류되며 각각의 컬렉션은 다음과 같은 특징을 가지고 있다.

 

 

  • 리스트 (List) : 데이터를 순서대로 저장하며, 중복된 데이터를 허용한다. 인덱스를 이용하여 특정 위치의 데이터에 접근할 수 있다.
  • 집합 (Set) : 데이터를 순서 없이 저장하며, 중복된 데이터를 허용하지 않는다. 데이터의 유무를 검색하는데 빠른 속도를 가지고 있다.
  • 맵 (Map) : 키-값 쌍으로 데이터를 저장하며, 중복된 키를 허용하지 않는다. 키를 이용하여 값을 검색할 수 있다.

 

 

for(변수명 in 범위) {

    // 반복할 코드
}

쉽게 이렇게 이해하면 된다.

 

 

① for 기본 예제

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

변수명 i를 설정하고, 범위는 1부터 5까지 설정한다.

 

 

[출력결과]

1
2
3
4
5

 

② for 기본 배열 예제

fun main() {
    val arr = arrayOf(1, 2, 3, 4, 5)
    
    for (num in arr) {
        println(num)
    }
}

'arrayOf'는 배열을 생성하는 함수이다.

 

 

 

[출력결과]

1
2
3
4
5

 

 

2) 변수의 증가, step 사용

 

'step'을 사용하면 반복문에서 사용되는 변수의 증가하는 크기를 지정할 수 있다.

 

즉, 증가시키는 간격을 지정한다.

 

for (i in 0..10 step 2) {
    println(i)
}

 

본 예제에서는 'step 2' 라고 설정되어 있다. 

 

그러므로, 0부터 10까지 2간격으로 반복한다.

 

 

[출력결과]

0
2
4
6
8
10

 

 

 

3) 변수의 감소, downTo 사용

증가하는 변수의 값을 지정할 때는 'step'이 있다면, 감소할 때는 'downTo'가 있다.

 

'downTo'는 변수의 값을 감소시키면서 반복을 수행한다.

 

for (i in 10 downTo 0 step 2) {
    println(i)
}

 

위 예제를 보면 downTo와 step이 둘 다 쓰였다.

 

'증가할 때는 step, 감소할 때는 downTo라면, 감소할 때는 step을 쓰면 안 되지 않나?'라는 의문이 생길 것이다.

 

정확히 말하면, downTo는 for문에서 변수를 감소시키는 범위를 지정하는 것으로, 변수의 값을 어디까지 감소시킬지를 지정하는 것이다.

 

예제에는 10부터 0까지 범위를 지정한 후, step을 사용하여 2씩 감소하라고 한 것을 알 수 있다.

 

 

[출력결과]

10
8
6
4
2
0

 

 

 

 

2. while 문

 

while 문은 조건식이 '참'인 경우, 반복을 수행한다.

 

While(조건식) {

    // 반복할 코드
}

 

 

fun main() {
    var i = 0
    
    while (i < 5) {
        println("i is $i")
        i++
    }
}

 

변수 i를 0으로 초기화 하고, while 문을 통해 i가 5보다 작은 동안 반복하도록 지정한다.

 

먼저 i가 5보다 작은지 판단 후, "i is $i"을 출력한다. i의 값을 출력 후, i의 값을 1씩 올린다.

 

이러한 과정을 거치다 보면 i(=5) < 5의 경우가 생길 것이고, "i is 4" 출력을 마지막으로 종료한다.

 

 

 

[출력결과]

i is 0
i is 1
i is 2
i is 3
i is 4

 

 

여기서 주의할 점은 while 문은 초기식과 증감식이 따로 존재하지 않기 때문에 위 예제처럼(i++) 루프 내에서 직접 변수의 값을 변경해야 한다. 

 

 

 

 

3. do-while 문

 

do-while 문은 while과 달리, 먼저 한 번 코드를 실행 후, 조건이 참인지 판단 후, 참이면 반복을 수행한다.

 

즉, 조건을 만족하지 못하더라도 한번은 무조건 실행하는 것이다. 

 

do {

    // 반복할 코드
} While(조건식)

 

 

 

fun main() {
    var i = 0
    
    do {
        println("i is $i")
        i++
    } while (i < 5)
}

 

변수 i를 0으로 초기화 후, do-while 문 안의 코드를 한 번 수행한다.

 

i의 값을 출력하고, i를 1씩 증가시킨다.

 

그 후, i가 5보다 작은지 판단한다.

 

이 과정을 반복하면, i(=5) < 5 인 순간이 오고, 이 경우, 반복문을 탈출하여 종료한다.

 

 

[출력결과]

fun main() {
    var i = 0
    
    do {
        println("i is $i")
        i++
    } while (i < 5)
}

 

 

do-while문도 while문과 마찬가지로 조건을 만족하면 수없이 반복하기 때문에 무한 반복이 되지 않게 조심해야 한다.

 

 

 

728x90