한 눈에 끝내는 고랭 기초
    • 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)
      최종 코드
    중간고사 평균 점수2
    배우기
    15 defer와 panic()
    중간고사 평균 점수2

    컬렉션 챕터에서 중간고사 평균 점수를 입력하고 평균을 구하는 실습 코드를 작성해봤습니다. 맵을 활용해보는 실습이라 별다른 예외 상황을 가정하지 않았습니다. 하지만 사용자가 점수를 입력할 때 음수를 입력할 수 있어 비정상적인 결괏값이 나올 수 있습니다. 에외 상황에서는 panic을 발생시키고 복구하는 실습을 해봅니다.

    panic을 발생시키는 경우는 

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

    panic이 발생되면 패닉 메시지를 출력하고 다시 처음으로 돌아옵니다.

    실습 내용
    • 과목 수와 점수를 입력받는 모든 과정은 average() 함수에서 연산합니다. 그리고 평균을 반환합니다.
    • main() 함수에서 평균을 출력합니다.
    • 과목 수를 0보다 작거나 같게 입력하면 패닉이 발생해 메시지("잘못된 과목 수입니다.")를 출력하고 복구해 main() 함수를 다시 시작합니다.
    • 점수를 0보다 작게 입력하면 패닉이 발생해 메시지("잘못된 점수입니다.")를 출력하고 복구해 main() 함수를 다시 시작합니다.
    • 평균은 float64형입니다.


    입력


    첫 번째 줄에 과목 수를 입력합니다. 잘못된 수를 입력하면 다음 줄부터 다시 과목 수를 입력합니다.

    과목 수 다음 줄에는 과목 점수들을 입력합니다. 각 점수는 개행합니다. 잘못된 점수를 입력하면 다음 줄부터 다시 과목수를 입력합니다.


    출력


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

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

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

    질문하기