Kotlin 제어문

for

java 와는 for 이 달라서 많이 헤맸다.

for (x in 1 until 10) print(x)
for (x in 1..10) print(x) // 이런 형태인데 x++ 를 따로 해줄필요 없음

for (x in 15 downTo 1) print(x) // 역순으로 진행 가능

for (x in 1..20 step 2) println(x) // step 을 지정해서 증감분을 설정

for (x in someArr) print("$x is an element of someArr") // Array 에서 바로 값 추출 가능

for ((idx, x) in someArr.withIndex()) print("$x is someArr[$idx]") 
// Array 의 메서드가 return 하는 값을 모두 이용할 수 있다.

if 문을 when 으로 대체

또 헷갈리는 부분이 if 를 when 으로 대체하는 부분이었다. switch 보다도 더 코드를 간결하게 만들어주는 조건문이다.

// 이러한 if 문이 있다고 할때
    if (x == y) {
        println("Draw")
    } else if(x > y) {
        println("Win")
    } else {
        println("Lose")
    }
// >, < 를 이용한 대소 비교를 하기 위해서는 다음과 같이 When 을 활용
 when {
        x == y -> println("Draw")
        x > y -> println("Win")
        else -> println("Lose")
    }

// 만약 >, < 를 이용한 대소 비교가 필요없다면 in 과 boolean 반환 함수를 이용해서 구성할 수 있다.

when(x) {
    12,13 -> println("x is 12 or 13")
    11 -> println("x is 11")
    in 1..10 -> println("hello")
    in someArr -> println("gello")
    x.isOdd() -> println("Odd Number")
    x.isEven() -> println("Even Number")
    x is someClass -> println("x is part of someClass")
    else -> println("dello")
}

좋은 웹페이지 즐겨찾기