Require로 검증하기
Coddy Kotlin 여정의 논리와 흐름 섹션에 포함된 레슨. 63개 중 54번째.
require(condition)은 함수 인수 계약을 확인합니다. 조건이 false이면 IllegalArgumentException을 발생시킵니다. 후행 람다는 오류 메시지를 제공할 수 있습니다. 호출자 측에서 이 예상된 오류를 잡으면 잘못된 입력을 정의된 결과로 변환할 수 있습니다.
fun ticketCost(count: Int): Int {
require(count >= 0) { "count must be nonnegative" }
return count * 5
}main 내부에서:
try {
println(ticketCost(-2))
} catch (error: IllegalArgumentException) {
println("invalid")
}인수 요구 사항이 충족되지 않으면 비용이 계산되기 전에 예외가 발생합니다.
require는 조건이 false일 때 IllegalArgumentException을 발생시킵니다.
챌린지
중급validatedCost를 매개변수 count: Int와 함께 완성하세요. 음수가 아닌 count를 요구하는 제공된 cost 헬퍼를 사용하세요. 성공하면 비용을 문자열로 반환하고, IllegalArgumentException이 발생하면 invalid를 반환하세요. count의 범위는 -1000에서 1000 사이입니다.
위에서 더 엄격한 범위를 명시하지 않은 경우, 컬렉션은 각 수준에서 최대 100개의 요소를 포함하며, 정수 인수와 정수 컬렉션 값의 범위는 -1000에서 1000 사이입니다. 파싱을 위해 제공되는 텍스트에는 설명된 대로 유효하지 않거나 범위를 벗어난 표현이 포함될 수 있습니다.
String 타입의 값을 반환하세요. 제공된 입력/출력 코드를 유지하세요. 스칼라 인수는 한 줄에 하나씩 읽습니다. 리스트는 개수와 그 뒤에 오는 요소들로 시작하고, 맵은 항목 개수와 그 뒤에 오는 각 키와 값으로 시작합니다. 중첩 리스트에서는 각 행에 대해 개수와 요소 형식을 반복합니다. 제공된 main은 반환값을 출력한 뒤 줄바꿈 하나를 출력합니다. 리스트에는 Kotlin의 표준 대괄호 형식을 사용하며, 추가 레이블은 출력하지 마세요.
직접 해보기
fun cost(count: Int): Int {
require(count >= 0) { "count must be nonnegative" }
return count * 5
}
fun validatedCost(count: Int): String {
// 여기에 솔루션을 작성하세요.
return ""
}
fun main() {
val count = readln().toInt()
println(validatedCost(count))
}이 레슨에는 짧은 퀴즈가 포함되어 있습니다. 레슨을 시작해 문제를 풀고 진행 상황을 기록하세요.
논리와 흐름의 모든 레슨
직접 연습해 보세요: Kotlin 플레이그라운드