한 눈에 끝내는 고랭 기초
    • 01
      시작하기에 앞서
    • 강의대상
      Go란?
      실습 환경 구축 - 구름IDE
      Hello goorm! 출력해보기
    • 02
      변수와 상수
    • 콘솔 출력 함수의 기본
      변수의 선언과 초기화
      상수의 선언과 초기화
      간단한 덧셈
      잘못된 신상정보
    • 03
      연산자
    • 연산자 종류
      연산자 우선순위
      콘솔 입력 함수의 기본
      간단한 덧셈과 곱셈
      몫과 나머지
    • 04
      자료형
    • 자료형의 종류와 특징
      문자열의 표현
      자료형의 변환
      강제 형 변환
    • 05
      콘솔 출력과 입력 함수
    • 콘솔 출력 함수(Print)
      콘솔 입력 함수(Scan)
      정돈된 표
      신상정보 입력과 출력
    • 06
      반복문 - for
    • 오로지 for
      구구단
      빛나는 이등변삼각형
    • 07
      조건문 - if/else
    • 조건에 따른 실행과 흐름 분기
      7과 9의 배수
      두 수의 차
    • 08
      분기문 - switch
    • swich문에 의한 선택적 실행
      안좋은 계산기
    • 09
      제어문
    • break, continue, goto문
      구구단2
      두 수를 더하면 99
    • 10
      컬렉션
    • 배열(Array)
      슬라이스(Slice)
      맵(Map)
      역행렬
      가장 긴 이름
      중간고사 평균 점수
    • 11
      함수
    • Go언어에서의 함수
      전역변수와 지역변수
      매개변수
      반환값(리턴값)
      익명 함수
      오름차순 정렬
      아이패드를 사주는 조건
      역학적 에너지
    • 12
      클로저
    • 외부 변수 접근 : 클로저
      동전 정리
    • 13
      구조체와 메소드
    • 구조체
      메소드
      성적 저장 프로그램
      역학적 에너지2
    • 14
      인터페이스(interface)
    • 메소드의 집합 인터페이스
      직육면체와 원기둥
    • 15
      defer와 panic()
    • 지연 처리 defer
      종료하는 panic(), 복구하는 recover()
      엘리베이터
      중간고사 평균 점수2
    • 16
      에러 처리
    • 에러 처리의 기본
      에러 출력 및 처리
      중간고사 평균 점수3
    • 17
      고루틴(Goroutine)
    • 비동기 프로세스의 기본
      고루틴의 활용
      고루틴 실습
    • 18
      채널(Channel)
    • 고루틴의 데이터 통로 : 채널
      비동기 채널과 버퍼
      동기 채널
      채널 닫기
      송신 전용, 수신 전용 채널
      채널 select문
      고루틴 실습2
      메시지 전송
      동기 채널 실습
      비동기 채널 실습
    • 19
      패키지(package)
    • 패키지의 개념
    • 20
      실전 프로젝트 - 마일리지 상점
    • 프로젝트를 시작하기 앞서
      실습모드에서 실습
      마일리지 상점의 주요 기능
      필수 구조체와 매인 메뉴
      잔여 수량, 잔여 포인트 구현
    • 21
      실전 프로젝트 - 주문하기, 장바구니 담기
    • 구매 구현(1)
      구매 구현(2)
      장바구니에 담기
      장바구니 확인(1)
      장바구니 확인(2)
    • 22
      실전 프로젝트 - 고루틴으로 배송하기
    • 배송 상태 확인(1)
      배송 상태 확인(2)
      배송 상태 확인(3)
      최종 코드
    중간고사 평균 점수3
    learn
    undefined undefined
    중간고사 평균 점수3

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

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

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

    입니다.


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


    입력


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

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


    출력


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

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

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

    Input/Output Example
    :
    Blank
    :
    Line Break
    :
    Tab
    Example 1
    Input
    5
    98
    79
    17
    100
    100
    Output
    78.8
    Example 2
    Input
    0
    Output
    잘못된과목수입니다.
    ⋇ Please keep the input and output formats carefully
    Q&A