오류 처리
Coddy Kotlin 여정의 기초 섹션에 포함된 레슨. 93개 중 90번째.
챌린지
중급이전 수업에서는 "Clear All" 기능을 구현했습니다. 이제 사용자가 유효하지 않은 지출 금액을 입력하는 경우를 처리하도록 입력 유효성 검사를 추가하세요.
지출을 추가할 때(옵션 1) 오류를 처리하도록 프로그램을 수정하세요:
- 사용자가 지출 금액을 입력하면
toDoubleOrNull()을 사용하여 입력값을 안전하게 변환하세요. - 변환 결과가
null(유효하지 않은 입력)이면 지출을 추가하는 대신Invalid amount!를 출력하세요. - 변환에 성공하면 이전과 같이 지출을 추가하고
Expense added!를 출력하세요.
다른 모든 옵션은 이전과 동일하게 작동해야 합니다:
- 옵션
1: 지출 추가(유효성 검사 포함) - 옵션
2: 모든 지출 보기 - 옵션
3: 합계 및 평균 - 옵션
4: 모든 지출 삭제 - 옵션
5:Goodbye!를 출력하고 종료 - 유효하지 않은 옵션:
Invalid option출력
입력 형식:
메뉴 선택과 지출 금액을 문자열로 입력합니다.
출력 형식:
메뉴와 각 작업에 해당하는 응답을 출력합니다.
예시:
입력이 1, abc, 1, 25.0, 1, hello, 2, 5인 경우 출력은 다음과 같습니다:
--- Expense Tracker ---
1. Add Expense
2. View All Expenses
3. Total and Average
4. Clear All
5. Exit
Choose an option:
Enter expense amount:
Invalid amount!
--- Expense Tracker ---
1. Add Expense
2. View All Expenses
3. Total and Average
4. Clear All
5. Exit
Choose an option:
Enter expense amount:
Expense added!
--- Expense Tracker ---
1. Add Expense
2. View All Expenses
3. Total and Average
4. Clear All
5. Exit
Choose an option:
Enter expense amount:
Invalid amount!
--- Expense Tracker ---
1. Add Expense
2. View All Expenses
3. Total and Average
4. Clear All
5. Exit
Choose an option:
Your expenses:
- $25.0
--- Expense Tracker ---
1. Add Expense
2. View All Expenses
3. Total and Average
4. Clear All
5. Exit
Choose an option:
Goodbye!힌트: toDoubleOrNull() 메서드는 문자열을 Double로 변환할 수 없는 경우 프로그램을 중단하는 대신 null을 반환합니다. 이 경우를 처리하려면 Elvis 연산자 또는 null 검사를 사용하세요.
직접 해보기
fun main() {
val expenses = mutableListOf<Double>()
while (true) {
println("--- Expense Tracker ---")
println("1. Add Expense")
println("2. View All Expenses")
println("3. Total and Average")
println("4. Clear All")
println("5. Exit")
println("Choose an option:")
val choice = readLine()
if (choice == "1") {
println("Enter expense amount:")
val amount = readLine()!!.toDouble()
expenses.add(amount)
println("Expense added!")
} else if (choice == "2") {
if (expenses.isEmpty()) {
println("No expenses recorded.")
} else {
println("Your expenses:")
for (expense in expenses) {
println("- \$$expense")
}
}
} else if (choice == "3") {
if (expenses.isEmpty()) {
println("No expenses recorded.")
} else {
val total = expenses.sum()
val average = total / expenses.size
println("Total: \$$total")
println("Average: \$$average")
}
} else if (choice == "4") {
expenses.clear()
println("All expenses cleared!")
} else if (choice == "5") {
println("Goodbye!")
break
} else {
println("Invalid option")
}
}
}기초의 모든 레슨
직접 연습해 보세요: Kotlin 플레이그라운드