Menu
CoddyTech

Xác thực bằng Require

Thuộc phần Logic và luồng chương trình trong hành trình Kotlin của Coddy. Bài học 54 trên 63.

require(condition) kiểm tra hợp đồng của đối số hàm. Nếu điều kiện là false, hàm này ném ra IllegalArgumentException. Bạn có thể dùng lambda ở cuối để cung cấp thông báo lỗi. Bắt ngoại lệ được mong đợi ở nơi gọi hàm giúp bạn chuyển đầu vào không hợp lệ thành một kết quả đã xác định.

fun ticketCost(count: Int): Int {
    require(count >= 0) { "count must be nonnegative" }
    return count * 5
}

Bên trong main:

try {
    println(ticketCost(-2))
} catch (error: IllegalArgumentException) {
    println("invalid")
}

Điều kiện đối số không thỏa mãn sẽ ném ngoại lệ trước khi tính chi phí.

require ném IllegalArgumentException khi điều kiện của nó là false.

challenge icon

Thử thách

Trung bình

Hoàn thiện validatedCost với tham số count: Int. Dùng hàm hỗ trợ tính chi phí được cung cấp, hàm này yêu cầu count không âm. Trả về chi phí dưới dạng chuỗi nếu thành công, hoặc invalid nếu ném ra IllegalArgumentException. count nằm trong khoảng từ -1000 đến 1000.

Trừ khi có giới hạn chặt hơn được nêu ở trên, các tập hợp chứa tối đa 100 phần tử ở mỗi cấp, còn các đối số số nguyên và giá trị số nguyên trong tập hợp nằm trong khoảng từ -1000 đến 1000. Văn bản dùng để phân tích có thể chứa các biểu diễn không hợp lệ hoặc nằm ngoài phạm vi như mô tả.

Trả về một giá trị có kiểu String. Giữ nguyên code đầu vào/đầu ra được cung cấp. Code này đọc từng đối số đơn trên một dòng; danh sách bắt đầu bằng số lượng phần tử, tiếp theo là các phần tử, còn bản đồ bắt đầu bằng số lượng mục, tiếp theo là từng khóa và giá trị. Danh sách lồng nhau lặp lại định dạng số lượng phần tử và các phần tử cho mỗi hàng. main được cung cấp sẽ in giá trị trả về, theo sau là một ký tự xuống dòng. Danh sách dùng định dạng có dấu ngoặc vuông tiêu chuẩn của Kotlin; không in thêm nhãn.

Tự làm thử

fun cost(count: Int): Int {
    require(count >= 0) { "count must be nonnegative" }
    return count * 5
}
fun validatedCost(count: Int): String {
    // Viết lời giải của bạn ở đây.
    return ""
}
fun main() {
    val count = readln().toInt()
    println(validatedCost(count))
}
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 Logic và luồng chương trình

Tự luyện tập: Playground Kotlin