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ự.
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đến3: trả về0(miễn phí) - Tuổi từ
4đến12: trả về10(giá vé trẻ em) - Tuổi từ
13đến17: trả về15(giá vé thanh thiếu niên) - Tuổi từ
18đến64: trả về25(giá vé người lớn) - Tuổi từ
65trở 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
}
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
4Toán tử phần 1
Toán tử số họcToán tử moduloPhép gán kết hợpToán tử so sánhÔn tập: phép tính đơn giản7Nhập xuất cơ bản
Hàm PrintlnMẫu chuỗiĐầu vào ReadLineChuyển đổi kiểu dữ liệuÔn tập: Số năm đến khi nghỉ hưuÔn tập: Đúng hay sai10Hàm
Khai báo hàmTham số và đối sốGiá trị trả vềĐối số có tênGiá trị mặc địnhHàm chỉ gồm một biểu thứcÔn tập: hàm SigmaÔn tập: hàm kiểm tra hợp lệ3Tính có thể null
An toàn với null là gìKiểu có thể nullToán tử gọi an toànToán tử ElvisCơ bản về thử thách hàmKhẳng định không nullÔn tập: truy cập an toàn6Ra quyết định
Câu lệnh ifCâu lệnh if-elseIf dưới dạng biểu thứcBiểu thức whenWhen với khoảng giá trịÔn tập: máy tính đơn giản9Vòng lặp
Vòng lặp forVòng lặp whileVòng lặp do-whileBreakContinuePhạm vi trong vòng lặpVòng lặp lồng nhauÔn tập: giai thừaÔn tập: đầu vào động12Cơ bản về danh sách
List và MutableListTruy cập phần tửChỉnh sửa danh sáchPhương thức của ListPair và TripleÔn tập: danh sách sản phẩmÔn tập: danh sách đảo ngược15Theo dõi chi tiêu hằng ngày
Tổng quan dự ánThoát khỏi chương trìnhTự luyện tập: Playground Kotlin