Menu
CoddyTech

When với khoảng giá trị

Thuộc phần Kiến thức nền tảng trong hành trình Kotlin của Coddy. Bài học 33 trên 93.

Đôi khi bạn cần kiểm tra xem một giá trị có nằm trong một khoảng hay không, thay vì khớp với các giá trị cụ thể. Biểu thức when hỗ trợ việc này bằng cách kết hợp từ khóa in với các khoảng.

fun main() {
    val score = 85
    
    val grade = when (score) {
        in 90..100 -> "A"
        in 80..89 -> "B"
        in 70..79 -> "C"
        in 60..69 -> "D"
        else -> "F"
    }
    
    println(grade)  // In ra: B
}

Từ khóa in kiểm tra xem giá trị có nằm trong phạm vi đã chỉ định hay không. Ở đây, 85 nằm trong 80..89, nên điểm là "B". Cách này gọn hơn nhiều so với việc viết score >= 80 && score <= 89 cho mỗi điều kiện.

Bạn cũng có thể kết hợp các khoảng giá trị với các giá trị cụ thể trong cùng một biểu thức when:

fun main() {
    val age = 17
    
    val category = when (age) {
        0 -> "Newborn"
        in 1..12 -> "Child"
        in 13..19 -> "Teenager"
        else -> "Adult"
    }
    
    println(category)  // In ra: Teenager
}

Phạm vi giúp code của bạn dễ đọc hơn khi xử lý các điều kiện số liên tục, thường gặp trong hệ thống chấm điểm, phân nhóm độ tuổi và những tình huống tương tự.

challenge icon

Thử thách

Dễ

Viết một hàm (function) getTicketPrice nhận age và trả về giá vé dựa trên nhóm tuổi của người đó.

Dùng biểu thức when với các khoảng để xác định giá vé phù hợp.

Điều kiện:

  • Tuổi từ 0 đến 3: trả về 0 (miễn phí)
  • Tuổi từ 4 đến 12: trả về 10 (giá vé trẻ em)
  • Tuổi từ 13 đến 17: trả về 15 (giá vé thanh thiếu niên)
  • Tuổi từ 18 đến 64: trả về 25 (giá vé người lớn)
  • Tuổi từ 65 trở lên: trả về 12 (giá vé người cao tuổi)

Tham số:

  • age (Int): Tuổi của người đó

Giá trị trả về: Giá vé dưới dạng số nguyên (integer) (Int)

Tự làm thử

fun getTicketPrice(age: Int): Int {
    // Viết code ở đây
}
quiz iconTự kiểm tra

Bài học này có một bài trắc nghiệm ngắn. Bắt đầu bài học để trả lời và theo dõi tiến độ.

Tất cả bài học trong Kiến thức nền tảng

Tự luyện tập: Playground Kotlin