8. 함수 (기능 만들기)
자주 쓰는 코드를 하나의 기능으로 묶어봐요.
자주 반복되는 코드들은 <이름>(꺾쇠 기호)을 사용해서 함수로 만들어두면 언제든 다시 꺼내서 실행할 수 있어요!
이름을 받아서 인사해주는 간단한 기능을 만들어볼까요?
<인사하기>를 만들자 ('이름'):
틀"{'이름'}님 안녕하세요!"를 출력하자
<인사하기>("손님")을 실행하자
<인사하기>("홍길동")을 실행하자
기능 안에서 계산을 하고, 그 결과를 바깥으로 돌려주게 만들 수도 있어요. 숫자 두 개를 더해서 결과를 돌려주는 기능을 만들어봐요.
[숫자]를 돌려주는 <더하기>를 만들자 ('가', '나'):
'결과값'을 [숫자]인 '가' + '나' 로 정하자
'결과값'을 돌려주자
'총합'을 [숫자]인 <더하기>(10, 20)으로 정하자
틀"더하기 결과: {'총합'}"을 출력하자
돌려주는 값이 없는 함수라도 복잡한 과정을 하나로 묶어두면 코드가 훨씬 깔끔해진답니다!
<게임시작>을 만들자 ():
"게임을 준비합니다..."를 출력하자
"캐릭터를 생성합니다..."를 출력하자
"시작!"을 출력하자
<게임시작>()을 실행하자
재료(인자)를 잘못 주면 어떻게 될까요?
함수를 호출할 때 필요한 인자(재료)를 안 주거나 너무 많이 주면 하자가 친절하게 막아줍니다.
<두배로>를 만들자 ('숫자'):
('숫자' * 2)를 돌려주자
(참고) 앗! 줘야 할 숫자를 까먹고 그냥 실행했어요!
'결과'를 [숫자]인 <두배로>()로 정하자
실행해 보면 “MissingArgumentError: 함수 실행에 필요한 인자가 누락되었어요.” 라는 에러가 떠요.
반대로 재료를 너무 많이 주면 어떻게 될까요?
<두배로>를 만들자 ('숫자'):
('숫자' * 2)를 돌려주자
(참고) 숫자 하나만 필요한데 3개나 줘버렸어요!
'결과'를 [숫자]인 <두배로>(10, 20, 30)으로 정하자
이때는 “ArgumentError: 함수에 전달된 인자의 개수가 너무 많아요.” 라고 하면서 튕겨냅니다. 함수가 요구하는 정확한 재료 개수를 맞춰서 넣어주는 것이 중요해요!