본문 바로가기
Kotlin

[Kotlin] for, while 반복문

by JongSeok 2022. 12. 23.

코틀린에는 조건에 따라 횟수와 범위를 설정하는 대표적인 방법으로 for 문과 while 문이 있습니다.
다양한 실행 예시를 통해 살펴보겠습니다.

for 문

 

▷ 실행 예시 1

fun main(args: Array<String>) {
    for (i in 0..5) {
        print("$i ")     // 0 1 2 3 4 5
    }
    for (j in 0 until 5) {
        print("$j ")     // 0 1 2 3 4
    }
}

가장 일반적인 for 문 작성법입니다. 

for (변수명 in range)의 꼴로 range가 a..b의 경우 a에서 b까지(b포함), a until b는 a에서 b이전까지 수행합니다.

위의 출력 예시에서 5의 출력 여부를 통해 확인할 수 있습니다.


▷ 실행 예시 2

fun main(args: Array<String>) {
    for (i in 0..10 step 2) {
        print("$i ")     // 0 2 4 6 8 10
    }
    for (j in 10 downTo 0 step 2) {
        print("$j ")     // 10 8 6 4 2 0
    }
}

for문 range 뒤 step을 설정하지 않은 경우 자동으로 인덱스를 1씩 증가시킵니다.

특정 정수배로 인덱스를 증가시키고 싶은 경우에는

range 뒤 step n설정 시 인덱스를 n배로 증가시키며 for문 내부를 실행하게 됩니다.

 

인덱스의 크기를 감소시키고 싶은 경우는 step -1이 아닌 downTo 키워드를 사용합니다.

마찬가지로 downTo 키워드에서도 step을 이용해 인덱스의 감소 설정이 가능합니다.


▷ 실행 예시 3

for문을 이용해 배열의 각 요소와 인덱스에 접근하는 것도 가능합니다.

fun main(args: Array<String>) {
    val array = arrayOf(1,2,3,4,5)
    
    for (i in array) {
        print("$i ")    // 1 2 3 4 5
    }
    for (i in array.indices step 2) {
        print("${array[i]} ")    // 1 3 5 
    }
    array.forEachIndexed { index, item ->
        print("[$index, $item] ")    // [0, 1] [1, 2] [2, 3] [3, 4] [4, 5]
    }
}

위에서 공부했던 for문과 사용법은 매우 유사합니다.

forEachIndexed 구문을 사용해 동시에 배열의 인덱스와 요소에 접근할 수 있습니다.

 

대부분 굉장히 직관적으로 코드가 구현되어 있어 자동완성 키워드를 확인하시면 어렵지 않게 구현이 가능합니다.

 

while 문

 

for문은 조건절을 통해 횟수와 범위를 제한한다면 while문은 조건절이 만족하지 않을 때까지 while문 블록을 수행합니다.

즉, while문의 조건절이 참이라면 while문을 무한히 반복합니다.

fun main(args: Array<String>) {
    var number = 0
    
    while (number < 10) {
        print("$number ")
        number++
    }
    println("\nwhile문 종료")
    println("number : $number")
}

while문 실행 예시

while문의 조건절을 만족하는 number가 10보다 작을 때까지 number를 출력합니다.

number가 10이 되면 조건절을 만족하지 않기 때문에 while문을 빠져나와 프로그램이 종료됩니다.


▷ while문 제어하기

 

반복문 구현 시 조건절에 관계없이 반복문을 중단해야 하는 경우가 있습니다.

이때, breakcontinue를 이용합니다. break는 반복문을 중단하고 빠져나와 다음 코드를 실행해라, continuecontinue 이하의 코드는 무시하고 반복문의 조건절로 이동해라. 라는 의미를 가집니다.

fun main(args: Array<String>) {
    var number = 0

    while (number < 10) {
        if (number == 3) {
            number++
            continue
        }
        if (number == 7) {
            break
        }
        print("$number ")
        number++
    }
    println("\nwhile문 종료")
    println("number : $number")
}

break, continue 실행예시

위의 예시에서 number가 3이 되면 number의 1을 더하고 number를 출력하지 않고 while문의 조건절로 이동합니다.

number가 7이 되면 조건절에 관계없이 while문을 중단하고 빠져나와 while문 다음 코드를 실행합니다.

728x90
반응형