for 문과 when 문

|

for 키워드

1 부터 10까지의 반복문은 다음과 같습니다. (1 <= i < 10)

for(i in 1..9) {
    println(i)
}

또는 다음과 같이 사용할 수 있습니다.

for(i in 1 until 10) {
    println(i)
}

만약 9 부터 1까지 거꾸로 내려가고 싶을 때는 다음과 같이 downTo 키워드를 사용합니다.

for(i in 9 downTo 1) {
    println(i)
}

만약 증가폭을 특정 숫자만큼 하고 싶을 때는 step 키워드를 사용합니다.

for(i in 1 until 10 step 2) {
    println(i)
}

ArrayList 등의 리스트를 사용할 경우 다음과 같이 for 문을 작성할 수 있습니다.

fun test() {
    val list = ArrayList<String>()

    list.add("Hello")
    list.add("Nice to meet you")
    list.add("Good bye")

    for (i in 0 until list.size) {
        println(list[i])
    }
}

만약 iterator를 사용할 경우 다음과 같이 코드를 작성할 수 있습니다.

fun test() {
    val list = ArrayList<String>()

    list.add("Hello")
    list.add("Nice to meet you")
    list.add("Good bye")

    for (text: String in list) {
        println(text)
    }
}


when 키워드

when은 Java에서의 switch와 사용법이 유사합니다.

fun test(menu: Int) {
    when (menu) {
        R.id.menu_start -> {

        }
        R.id.menu_stop -> {
            
        }
    }
}

break 구문 없이 중괄호({}) 만으로 분기를 나눌 수 있습니다. 중괄호 없이 사용하더라도 다음 -> 구문이 나올 때까지 실행합니다.

when 문 안에서 간단한 연산도 가능합니다.

fun main(args: Array<String>) {
    test(2)
    test(10)
    test(4)
    test(1)
}

fun test(menu: Int) {
    when {
        menu <= 3 -> {
            println("$menu <= 3")
        }
        menu <= 7 -> {
            println("3 < $menu <= 7")
        }
        else -> {
            println("$menu > 7")
        }
    }
}