Lệnh When trong Kotlin

Trong bài này chúng ta sẽ học lệnh When trong Kotlin, đây là lệnh có công dụng giống với lệnh switch – case ở các ngôn ngữ lập trình khác như JAVA, PHP, C, C++.

Lệnh when được dùng để rẻ nhánh chương trình, về ý nghĩa rất giống với lệnh if else, nhưng về tính khả thi thì thường người ta sẽ chọn if else thay vì chọn When.

1. Câu lệnh When trong Kotlin và ví dụ

Hãy bắt đầu tìm hiểu bằng một ví dụ dưới đây.

/**
 * created by Chaitanya for Beginnersbook.com
 */
package beginnersbook

fun main(args : Array<String>){

    var ch = 'A'

    when(ch){

        'A' -> println("A is a Vowel")
        'E' -> println("E is a Vowel")
        'I' -> println("I is a Vowel")
        'O' -> println("O is a Vowel")
        'U' -> println("U is a Vowel")

        else -> println("$ch is a Consonant")
    }
}

OUTPUT:

Bài viết này được đăng tại [kiso.vn]

A is a Vowel

Chúng ta cũng có thể viết lại code theo cách gọn gàng hơn như thế này:

/**
 * created by Chaitanya for Beginnersbook.com
 */

package beginnersbook

fun main(args : Array<String>){

    var ch = 'A'

    when(ch){

        'A', 'E', 'I', 'O', 'U' -> println("$ch is a Vowel")

        else -> println("$ch is a Consonant")
    }
}

2. Câu lệnh When với ranges trong Kotlin

Chúng ta cũng có thể sử dụng phạm vi khi biểu thức. Trong ví dụ sau, chúng ta sử dụng nhiều phạm vi bên trong câu lệnh When để tìm ra các chữ số trong số đã cho.

/**
 * created by Chaitanya for Beginnersbook.com
 */

package beginnersbook

fun main(args : Array<String>){

    var num = 78

    when(num) {
        in 1..9 -> println("$num is a single digit number")
        in 10..99 -> println("$num is a two digit number")
        in 100..999 -> println("$num is a three digit number")
        else -> println("$num has more than three digits")
    }
}

OUTPUT:

10 kotlin when expression jpg

3. Phép toán số học bên trong câu lệnh When

Chúng ta cũng có thể thực hiện các tính toán trên biến trong câu lệnh When.

/**
 * created by Chaitanya for Beginnersbook.com
 */

package beginnersbook

fun main(args : Array<String>){

    var age = 16

    when(age) {
        in 1..17 -> {
            val num = 18 - age
            println("You will be eligible for voting in $num years")
        }
        in 18..100 -> println("You are eligible for voting")
    }
}

OUTPUT:

11 kotlin when expression ranges example jpg

Như mình đã nói ban đầu, lệnh when có cú pháp hơi phức tạp nên với những chương trình code lớn thì ta nên sử dụng lệnh if để thay thế.

Bài viết liên quan

Trả lời

Email của bạn sẽ không được hiển thị công khai. Các trường bắt buộc được đánh dấu *