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 [free tuts .net]
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:
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:
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ế.