When Expression

Run Settings
LanguageKotlin
Language Version
Run Command
fun main(args : Array<String>){ /* when expression dapat mengembalikan nilai dan dapat disimpan di dalam sebuah variabel seperti berikut: */ val value = 7 val anyType : Any = 100L // val stringOfValue = when(value) // { // 6 -> println("value is 6") // 7 -> println("value is 7") // 8 -> println("values is 8") // else -> println("value cannot be reached") /* else adalah hal wajib jika kita menggunakan when expression untuk mengembalikan nilai. Bagaimana jika kita melewatkannya? Akan tampil eror berikut: */ /* Jika kita memiliki dua atau lebih baris kode yang akan kita jalankan di setiap branch, kita bisa memindahkannya ke dalam curly braces seperti berikut: */ val stringOfValue = when (value) { 6 -> { println("Six") "value is 6" } 7 -> { println("Seven") "value is 7" } 8 -> { println("Eight") "value is 8" } else -> { println("undefined") "value cannot be reached" } } /* when juga memungkinkan kita untuk memeriksa instance dengan tipe tertentu dari sebuah objek menggunakan is atau !is */ when (anyType) { is Long -> println("the value has a long type") !is String -> println("the value has a string type") else -> println("underfined") } println(stringOfValue) println(anyType) val values = 100 val ranges = 10..50 /* Selain itu, when expression juga bisa kita gunakan untuk memeriksa nilai yang terdapat pada sebuah Range atau Collection. */ when(values) { in ranges -> println("value is in the range") !in ranges -> println("value is outside the range") else -> println("value undefined") } println(values) /* Sejak Kotlin 1.3, kita dapat menangkap subjek dari when expression di dalam sebuah variabel. */ val registerNumber = when(val regis = getRegisterNumber()){ in 1..50 -> 50 * regis in 51..100 -> 100 * regis else -> regis } /* Jika kita melihat penjelasan dan contoh penggunaan dari when expression di atas, ia memiliki kesamaan dengan if expression. Lantas disituasi seperti apa kita menggunakannya? if expression sebaiknya digunakan ketika kondisi yang diberikan tidak lebih dari 2 (dua) dan kondisi yang diberikan tidak terlalu rumit. Berbeda dengan when expression, ia bisa digunakan ketika kondisi yang diberikan lebih dari 2 (dua) */ } fun getRegisterNumber() = Random.nextInt(100)
Editor Settings
Theme
Key bindings
Full width
Lines