코틀린은 삼항연산자 condition ? then : else
가 없다! 그 이유는,
// 기존 방식
var max = a
if (a < b) max = b
// else문과 함께 사용
var max: Int
if (a > b) {
max = a
} else {
max = b
}
// expression으로 사용
val max = if (a > b) a else b
만약 if와 else가 값을 반환하기 전에 어떤 연산을 수행하고 싶다면 {}
을 이용해 반환값을 맨 아래에 넣고 그 위에 코드를 넣어주면 된다.
val max = if (a > b) {
print("Choose a")
a
} else {
print("Choose b")
b
}
C와 같은 언어의 switch 문과 비슷하며 기본적인 사용은 이렇다.
when (x) {
1 -> print("x == 1")
2 -> print("x == 2")
else -> { // Note the block
print("x is neither 1 nor 2")
}
}
fun test(arg : Any)
{
when(arg) {
1->"January"
2->"Febuary"
3->"March"
4->"April"
5->"May"
6->"June"
7->"July"
8->"August"
9->"September"
10->"October"
11->"November"
12->"December"
else -> {
println("Not a month of year")
}
}
}
in
, !in
과 같이 사용한다.when (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")
}
for (i in array.indices) {
println(array[i])
}
for (i in 1..3) {
println(i)
}
for (i in 6 downTo 0 step 2) {
println(i)
}
enumerate()
같이 인덱스도 나타낼수있다.for ((index, value) in array.withIndex()) {
println("the element at $index is $value")
}
while
과 do while
이 있다. 우리가 아는 그것과 크게 다른것이 없다.