흐름 제어

If 문

  • if는 수식이기도하며 값을 반환
    • 블럭을 지정한 경우 마지막 식의 값을 반
  • 삼항연산자 ( ? : )는 존재하지않음
// As expression 
val max = if (a > b) a else b

val max = if (a > b) {
    print("Choose a")
    a
} else {
    print("Choose b")
    b
}

when 문

  • 각 브랜치는 값 / 임의의 수식을 지정해서 사용 가능
  • 복수의 케이스를 같은 방법으로 처리하는 경우 콤마(,) 사용
  • is, !is : 특정 타입 검색
  • in, !is : 범위 검색
when (x) {
    parseInt(s) -> print("s encodes x")
    in 1..10 -> print("x is in the range")
    in validNumbers -> print("x is valid")
    !in 10..20 -> print("x is outside the range")
    else -> print("none of the above")
}
val hasPrefix = when(x) {
    is String -> x.startsWith("prefix")
    else -> false
}

For 루프문

  • iterlator 제공하는 콜렉션에 대해 반복 수행
for (item: Int in ints) {
    // ...
}
// 인덱스를 이용하는 방법
for (i in array.indices) {
    print(array[i])
}
// withIndex : 인덱스와 값을 이용하는 방법
for ((index, value) in array.withIndex()) {
    println("the element at $index is $value")
}

while 루프문

while (x > 0) {
    x--
}

do {
    val y = retrieveData()
} while (y != null) // y is visible here!

break / continue

  • break / continue 지원

results matching ""

    No results matching ""