흐름 제어
If 문
- if는 수식이기도하며 값을 반환
- 삼항연산자 ( ? : )는 존재하지않음
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])
}
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)
break / continue