If dưới dạng biểu thức
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 31 trên 93.
Bạn đã thấy cách dùng if ngay trong dòng để chọn giữa hai giá trị. Nhưng khi các khối if-else của bạn chứa nhiều câu lệnh (statement), bạn vẫn có thể dùng toàn bộ cấu trúc này như một biểu thức (expression): biểu thức cuối cùng trong mỗi nhánh sẽ trở thành giá trị trả về.
fun main() {
val score = 85
val message = if (score >= 60) {
val grade = "passing"
"You got a $grade score!"
} else {
val grade = "failing"
"You got a $grade score."
}
println(message) // In ra: You got a passing score!
}Mỗi nhánh có thể chứa nhiều câu lệnh, nhưng biểu thức cuối cùng trong nhánh sẽ được trả về và gán cho biến. Trong trường hợp này, chuỗi ở dòng cuối cùng của mỗi khối lệnh trở thành giá trị của message.
Cách này cũng áp dụng với các chuỗi else if:
fun main() {
val temperature = 25
val description = if (temperature > 30) {
"Hot"
} else if (temperature > 20) {
"Warm"
} else {
"Cool"
}
println(description) // In ra: Warm
}Khi dùng if như một biểu thức, cần có nhánh else: Kotlin cần đảm bảo một giá trị được trả về bất kể điều kiện nào đúng.
Thử thách
DễBạn được cung cấp biến sau:
val hours = 45Dùng biểu thức if với nhiều câu lệnh trong mỗi nhánh để xác định trạng thái lương của nhân viên và tạo thông báo.
Tạo biến payStatus bằng biểu thức if:
- Nếu
hourslớn hơn 40:- Tạo biến
overtimecó giá trị bằnghours - 40 - Biểu thức cuối cùng phải là
"Overtime: $overtime extra hours"
- Tạo biến
- Nếu không:
- Tạo biến
remainingcó giá trị bằng40 - hours - Biểu thức cuối cùng phải là
"Regular: $remaining hours until overtime"
- Tạo biến
In ra giá trị của payStatus.
Tự làm thử
fun main() {
val hours = 45
// TODO: Viết code của bạn bên dưới
// Tạo biến (variable) payStatus bằng biểu thức (expression) if
// Nếu hours > 40: tạo biến overtime và trả về "Overtime: $overtime extra hours"
// Nếu không: tạo biến remaining và trả về "Regular: $remaining hours until overtime"
}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