Swift/Swift 문법
[Swift] 에러처리, (feat 피보나치수열)
내일은개발천재🎵
2023. 1. 2. 19:53
오늘은 Swift의 에러처리에 대해서 공부했다 (TIL)
GitHub - JIWON1923/Today-I-Learend
Contribute to JIWON1923/Today-I-Learend development by creating an account on GitHub.
github.com
마침 알고리즘 공부 중 피보나치 수열이 나왔는데, 사용자가 음수를 입력했을 때 에러를 처리하는 코드를 써봤다!
enum error: Error {
case arange
}
func fibo(_ n: Int) throws -> Int {
if n < 0 {
throw error.arange
} else if n <= 1 {
return n
}
return try fibo(n-1) + fibo(n-2)
}
var n = Int(readLine()!)!
do {
try print(fibo(n))
} catch {
print("음수는 계산할 수 없습니다.")
}
이렇게 되니 그냥 사용자에게 잘못된 입력이라는 에러메시지만 출력하고 종료된다.
다시 입력을 받으려면 어떻게 해야할까!?
enum error: Error {
case arange
}
func fibo(_ n: Int) throws -> Int {
if n < 0 {
throw error.arange
} else if n <= 1 {
return n
}
return try fibo(n-1) + fibo(n-2)
}
func handleError(_ n: Int) {
do {
try print(fibo(n))
} catch {
print("음수는 계산할 수 없습니다. 다시 입력해주세요")
let newValue = Int(readLine()!)!
handleError(newValue)
}
}
var n = Int(readLine()!)!
handleError(n)
끝! 재귀함수의 에러처리!
사용자가 올바른 값을 입력할때까지 반복하게 된다 ^___^ 재뮜다