이러한 잠재적 위험을 피하는 더 나은 형태는 다음과 같다.
> 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
이 함수는 다소 장황해 보일 수 있지만, 변경 사항에 더 잘 대응(강인)하고 논리가 분명하다. 코드를 짧게 하기보다는 오류를 없애는 편이 언제나 낫다는 것을 잊지 말자.