Biểu thức when
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 32 trên 93.
Khi cần kiểm tra một giá trị với nhiều giá trị cụ thể, các chuỗi câu lệnh else if dài có thể trở nên khó đọc. Kotlin cung cấp biểu thức when như một lựa chọn gọn gàng hơn để đối chiếu một giá trị với nhiều khả năng.
fun main() {
val day = 3
val dayName = when (day) {
1 -> "Monday"
2 -> "Tuesday"
3 -> "Wednesday"
4 -> "Thursday"
5 -> "Friday"
else -> "Weekend"
}
println(dayName) // In ra: Wednesday
}Biểu thức (expression) when nhận một giá trị và so sánh giá trị đó với từng nhánh. Khi tìm thấy kết quả khớp, biểu thức trả về kết quả tương ứng. Nhánh else xử lý mọi giá trị không khớp với các trường hợp đã liệt kê.
Bạn cũng có thể khớp nhiều giá trị trong một nhánh bằng cách phân tách chúng bằng dấu phẩy:
fun main() {
val day = 6
val type = when (day) {
1, 2, 3, 4, 5 -> "Weekday"
6, 7 -> "Weekend"
else -> "Invalid"
}
println(type) // In ra: Weekend
}Một when tạo ra giá trị phải bao quát mọi trường hợp: mọi đầu vào có thể đều phải có kết quả. Các ví dụ với số nguyên này cần có else, nhưng when kiểu Boolean có cả nhánh true và false thì không cần.
Thử thách
DễBạn được cung cấp biến sau:
val month = 4Dùng biểu thức when để xác định mùa dựa trên số tháng và lưu kết quả vào biến có tên season.
Điều kiện:
- Các tháng
12,1,2phải trả về"Winter" - Các tháng
3,4,5phải trả về"Spring" - Các tháng
6,7,8phải trả về"Summer" - Các tháng
9,10,11phải trả về"Fall" - Mọi giá trị khác phải trả về
"Invalid month"
Dùng các giá trị được phân tách bằng dấu phẩy trong các nhánh when để nhóm những tháng thuộc cùng một mùa.
In ra giá trị của season.
Tự làm thử
fun main() {
val month = 4
// TODO: Viết code của bạn bên dưới
// Dùng biểu thức (expression) when để xác định mùa dựa vào tháng
// Lưu kết quả vào biến (variable) có tên 'season'
// In ra kết quả
println(season)
}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