When pada Kotlin

Eric Wijaya
2 min readDec 26, 2018

--

When merupakan salah satu kontrol percabangan di dalam Kotlin. When akan menjalankan kode yang berbeda berdasarkan nilai dari argument variabel.

val playerNumber = 20when (playerNumber) {
20 -> println("Ole Gunnar Solskjaer")
16 -> println("Roy Keane")
else -> println("No player used that number")
}

When tidak membutuhkan break statement karena when hanya akan memakai cabang pertama yang cocok dan setelah itu akan keluar dari when.

Cabang Else akan tercapai apabila semua cabang when lainnya tidak terpenuhi.

When sebagai statement

When sebagai statement tidak perlu menyertakan semua cabang argument yang mungkin. Mirip dengan switch pada Java.

val playerNumber = 11
when (playerNumber) {
11 -> println("Ryan Giggs")
20 -> println("Ole Gunnar Solskjaer")
}

When sebagai expression

Menggunakan return value dari when. Perlu menyertakan semua cabang argument yang mungkin.

val playerNumber = 20
val playerName = when (playerNumber) {
7 -> "David Beckham"
11 -> "Ryan Giggs"
16 -> "Roy Keane"
20 -> "Ole Gunnar Solskjaer"
else -> "No player used that number"
}

Mengkombinasi cabang when

Mengkombinasi cabang when dengan koma, sama seperti operator or.

val playerNumber = 7
val playerName = when (playerNumber) {
24, 7, 10 -> "David Beckham"
else -> "David Beckham never used these number"
}

Range pada cabang when

Menggunakan range pada when dengan memakai operator in.

val playerNumber = 7val playerName = when (playerNumber) {
7 -> "David Beckham"
11 -> "Ryan Giggs"
in 12..23 -> "Reserves Player"
else -> "No player used that number"
}

Autocasting pada when

Memakai operator is

when (view) {
is TextView -> println ("View is a TextView")
is RecyclerView -> println("View is a RecyclerView")
else -> println("View not supported")
}

When tanpa menggunakan argument

When juga dapat digunakan tanpa argument, untuk menentukan cabang yang cocok bisa menggunakan nilai dari suatu variabel.

when {
playerNumber == 7 -> println("David Beckham")
playerNumber in 12..23 -> println("Reserve Player")
playerName == "Roy Keane" -> println("Captain")
}

Kesimpulan

Pada artikel ini kita belajar beberapa contoh pemakaian when pada Kotlin.

--

--

No responses yet