Quick actions

cmd+k|ctrl+k

Navigation

Languages

When Expression

Snippet info

Language

Kotlin

Visibility

public

Author

asepkhabril20

Created

2022-06-09T09:40:05.571007Z

Updated

2022-06-09T14:35:19.433191Z

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)
INFO