Học Kotlin cơ bản

Bài 5: Câu lệnh rẽ nhánh trong Kotlin

Trong bất kỳ ngôn ngữ lập trình nào, chúng ta cần các câu lệnh điều khiển để điều khiển luồng chương trình dựa trên đầu ra của một điều kiện.

1. Câu lệnh If

If khá đơn giản để hiểu. Hãy xem cú pháp của biểu thức if.
if(condition){  
   // Statements that need to be executed if condition is true 
   ...
}
Ở đây chúng ta có một điều kiện trong biểu thức if, nếu điều kiện trả về true thì các câu lệnh bên trong phần thân của biểu thức if được thực thi, nếu điều kiện trả về false thì chúng bị bỏ qua hoàn toàn.
Trong ví dụ này, nếu số đã cho là chẵn thì chúng ta sẽ hiển thị "Even Number" ở output, nếu không, chúng ta sẽ bỏ qua các câu lệnh bên trong "if".
fun main(args: Array<String>) {
 
    val number = 100
 
    // if expression
    if (number%2 == 0)
        println("Even Number")
 
    println("Out Of If statement")
}
Even Number
Out Of If statement

2. Câu lệnh If...Else

If..Else được sử dụng khi chúng ta cần thực hiện một số hành động nếu một điều kiện là đúng và chúng ta cần thực hiện một hành động khác khi một điều kiện là sai. Ví dụ: Bố tôi sẽ cho tôi tiền nếu tôi vượt qua kỳ thi nếu không bố sẽ nổi giận. Nếu tôi phải viết cái này trong lập trình thì tôi sẽ làm nó như thế này -
fun main(args: Array<String>) {
    // Marks out of 100
    val marks = 90
    if (marks < 30) {
        println("Father will get angry")
    }
    else {
        println("Father will give me money")
    }
}
Father will give me money
Vì điều kiện trả về là false, câu lệnh bên trong "if" bị bỏ qua và câu lệnh bên trong "else" được thực thi.
Cú pháp của if..else:
if(condition){  
   // Statements that will be executed if the condition returns true 
   ...
}  
else{  
   // Statements that will be executed if the condition returns false 
   ...
}
Ví dụ If..else
Trong ví dụ này, chúng ta kiểm tra một số để xem nó là dương hay âm.
fun main(args: Array<String>) {
    // Traditional usage
    val num = -101
    if (num < 0) {
        println("Negative number")
    }
    else {
        println("Positive number")
    }
    println("Out of if else statement")
}
Negative number
Out of if else statement

3. If..Else dạng bậc thang

Trong biểu thức này, chúng ta có một khối "if", một khối "else" và một hoặc nhiều khối "else if" nữa . Điều này được sử dụng để kiểm tra nhiều điều kiện.
Ví Dụ:
Trong ví dụ này, chúng ta có một số và kiểm tra xem nó có phải là số âm, số có một chữ số, số có hai chữ số hay số nhiều chữ số không. Chúng ta đang kiểm tra nhiều điều kiện này bằng cách sử dụng biểu thức if..else if..else. Khi không có điều kiện nào trả về đúng thì các câu lệnh bên trong khối "else" được thực thi.
fun main(args: Array<String>) {
    val num = 99
    if(num<0)
        println("Number is Negative")
    else if (num>0 && num<10)
        println("Single digit number")
    else if (num>=10 && num <100)
        println("Double digit number")
    else
        println("Number has 3 or more digits")
}
Double digit number

4. Câu lệnh IF lồng nhau

Khi một câu lệnh có mặt bên trong thân của câu lệnh khác thì nó được gọi là câu lệnh lồng nhau. Ví dụ: nếu một bcâu lệnh If có mặt bên trong một câu lệnh "if" khác thì nó được gọi là câu lệnh lồng nhau.
Ví dụ:
fun main(args: Array<String>) {
    val num = 101
    if(num<0)
        println("Negative Number")
    else {
        //Nested expression
        if(num%2 == 0)
            println("Even Number")
        else
            println("Odd Number")
    }
 
}
Odd Number

5. Câu lệnh When

Đâ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++.
Ví dụ:
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")
    }
}
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.
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")
    }
}
Như vậy, thông qua bài học này, chúng ta đã tìm hiểu về câu lệnh rẽ nhánh trong Kotlin. Cảm ơn các bạn đã đọc.