중간고사 평균 점수3
배우기
16 에러 처리
중간고사 평균 점수3

반환값이 있는 함수는 함수 내에서 에러가 발생할 수 있는 부분에 대해 에러 검사를 하고 만약 에러가 있다면 에러 값으로 error형 변수를 반환한다고 했습니다. 따라서 에러 값이 존재한다면(not nil) 에러를 발생시키고 조취를 취합니다. 이러한 과정을 한 마디로 '에러 처리'라고 하는데 프로그램 내에서 치명적인 오류가 발생할 수 있는 부분에 대해 적절한 조치를 미리 취하는 것으로 코드 완성도에 굉장한 큰 영향을 끼칩니다.

간단하게 이를 실습해볼 수 있도록 하기위해 중간고사 평균 점수 프로그램에 에러 처리를 해봅니다. 에러로 처리해야 하는 경우는

  • 시험 과목을 -1 이하 정수로 입력했을 때
  • 점수를 음수로 입력했을 때

입니다.


실습 내용
  • 과목 수는 inputSubNum() 함수에서 연산합니다. 사용자에게 입력받은 과목 수와 에러가 있다면 에러 값을 반환합니다.
  • 평균은 average() 함수에서 연산합니다. 평균값과 에러가 있다면 에러 값을 반환합니다.(강제 형 변환 있습니다.)
  • main() 함수에서 inputSubNum()와 average() 함수에 대해 각각 에러 값이 있다면 에러 처리를 하는 조건문이 있습니다.
  • 과목 수를 0보다 같거나 작게 입력하면 에러 값을 반환합니다. 에러 메시지는 "잘못된 과목 수입니다."입니다.
  • 점수를 0보다 작거나 100보다 크게 입력하면 에러 값을 반환합니다. 에러 메시지는 "잘못된 점수입니다."입니다.
  • panic() 함수를 사용하여 문제를 해결합니다.
  • 에러 값은 errors.New(), fmt.Errorf() 모두 사용 가능합니다.
  • 패닉이 발생하면 recover() 함수로 복구해 에러 메시지를 출력하고 정상 종료합니다. 


입력


첫 번째 줄에 과목 수를 입력합니다. 잘못된 수를 입력하면 입력이 종료됩니다.

과목 수 다음 줄에는 과목 점수들을 입력합니다. 각 점수는 개행합니다. 잘못된 점수를 입력하면 입력이 종료됩니다.


출력


점수들의 평균을 float64형으로 출력합니다.

잘못된 과목 수를 입력하면 "잘못된 과목 수입니다."를 출력합니다.

잘못된 점수를 입력하면 "잘못된 점수입니다."를 출력합니다.

입/출력 예시
:
공백
:
줄 바꿈
:
예시 1
입력
5
98
79
17
100
100
출력
78.8
예시 2
입력
0
출력
잘못된과목수입니다.
⋇ 입출력 형식을 잘 지켜주세요
질문하기
추가 자료
no files uploaded

추가 자료가 없습니다

여기서 새로운 학습 자료를 확인하세요!
선생님이 추가한 자료들을 바로 확인할 수 있어요.