더북(TheBook)

이러한 잠재적 위험을 피하는 더 나은 형태는 다음과 같다.

> say_grade <- function(name, score) {
+     if (score >= 90) {
+         grade <- "A"
+         cat("Congratulations!\n")
+     } else if (score >= 80) {
+         grade <- "B"
+     }
+     else if (score >= 70) {
+         grade <- "C"
+     }
+     else if (score >= 60) {
+         grade <- "D"
+     } else {
+         grade <- "F"
+         cat("What a pity!\n")
+     }
+     cat("The grade of", name, "is", grade)
+ }
> say_grade("James", 93)
Congratulations!
The grade of James is A

이 함수는 다소 장황해 보일 수 있지만, 변경 사항에 더 잘 대응(강인)하고 논리가 분명하다. 코드를 짧게 하기보다는 오류를 없애는 편이 언제나 낫다는 것을 잊지 말자.

신간 소식 구독하기
뉴스레터에 가입하시고 이메일로 신간 소식을 받아 보세요.