복습 - 안전한 계산기
Coddy R 여정의 논리와 흐름 섹션에 포함된 레슨. 64개 중 56번째.
챌린지
어려움evaluate(expr)를 완성하세요. 표현식은 연산자 양쪽에 공백이 있는 <number> <operator> <number> 형식이며, 예를 들면 8 / 2와 같습니다. 각 문제에 대해 stop()으로 오류를 발생시키되, 다음 순서로 확인하세요:
- 부분이 정확히 세 개가 아닐 때
expected: number operator number - 변환할 수 없는 첫 번째 숫자 부분에 대해
'<part>' is not a number, 예를 들면'x' is not a number - 연산자가
+,-,*또는/가 아닐 때unknown operator <op> division by zero
그 외의 경우에는 round(value, 4)를 사용하여 결과를 소수점 이하 네 자리로 반올림한 뒤 반환하세요.
그런 다음 run_all(exprs)를 완성하세요. 각 표현식을 tryCatch() 안에서 평가하고, 표현식마다 한 줄씩 반환하세요. 반환 형식은 8 / 2 = 4 또는 5 / 0 -> error: division by zero입니다.
제공된 코드는 모든 입력 줄을 run_all()에 전달하고 반환된 각 줄을 출력합니다.
직접 해보기
evaluate <- function(expr) {
# 여기에 코드를 작성하세요
0
}
run_all <- function(exprs) {
# 여기에 코드를 작성하세요
character(0)
}
# 제공된 입출력 코드: 그대로 유지하세요
input <- suppressWarnings(readLines(file("stdin")))
cat(run_all(input), sep = "\n")
논리와 흐름의 모든 레슨
직접 연습해 보세요: 온라인 R 컴파일러