⚠ 이 강좌는 오토핫키 v2를 다룹니다
지금 보시는 강좌는 과거 오랜 시간동안 알려진 오토핫키(v1.1)의 차세대 버전인 오토핫키 v2를 다루고 있습니다.
만약 구버전인 '오토핫키 v1.1'의 강좌를 찾으신다면 프날 오토핫키 강좌(https://pnal.kr)를 봐주시면 되지만,
새로 오토핫키를 배우신다면 v2 버전을 배우시는 것을 강력히 추천드립니다.
27. 함수의 반환값
마지막 수정일: 2023-12-17
이번에는 함수의 반환값을 배워보겠습니다.
함수의 본질
뜬금없이 함수의 본질에 대해 언급하는 이유는 함수에 반환값이 있는 이유를 납득시키기 위해서입니다. 이렇게 본질을 파악하면 우리가 배운 함수의 개념을 조금 더 명확히하여 나중에 헷갈릴 일이 없도록 해줍니다.
학창 시절 수학 시간에 함수를 배워본 적 있을 것입니다. 주로 아래와 같은 형식으로 표현되곤 했죠.
y = 2x + 3
갑자기 수학이 나오다니! 머리가 아프실 수 있지만 더이상 어렵게 하진 않겠습니다. 아무튼, 위 함수는 일차함수로서 y가 2x + 3을 나타냅니다.
우리가 x에 1, 2, 3, 4...를 넣어보면 y의 값은 각각 5, 7, 9, 11...이 됩니다. 프로그래밍을 배우려는 것이므로 당장 계산해야 하는 것은 아닙니다. 중요한 것은, 무언가 입력(x:input)이 있다면 출력(y:output)이 있다는 것이죠.
프로그래밍에서의 함수도 마찬가지입니다. 우리가 어떤 입력을 주면, 무언가 작업을 열심히 해서 출력을 뱉어내는 구조를 함수라고 합니다. 여기서 '입력'을 인수로, '출력'은 반환값으로 부릅니다. 인수를 전달하여 함수를 호출하는 작업은 해보았죠?
우리는 지금까지 "함수는 무언가 일을 한다" 라고만 알고 있었습니다. MsgBox
를 사용하면 알림 상자를 화면에 출력하는 작업만 해줬죠.
그러나 함수는 (필요한 경우) 그 일의 결과 또한 반환해줍니다. 우리는 MsgBox
를 사용하면서 함수의 반환값을 사용한 적은 없습니다.
함수의 반환값
함수를 함수명(인수)
처럼 호출하면, 그 호출부는 작업을 마친 후 결괏값을 가집니다.
우리는 이 과정을 '함수가 값을 반환했다'라고 부를 것입니다.
즉, 함수는 작업을 마친 후 결괏값을 반환합니다. 그 값을 알아보기 위해 대입 연산자를 사용해서 변수에 반환값을 담아볼 수 있습니다.
1 var := MsgBox("Hello")
2 MsgBox(var)
MsgBox
함수도 값을 반환합니다.
위 예제와 같이 사용하면, MsgBox
가 실행된 후 적절한 값이 반환되어 var
변수에 담길 것입니다.
어떤 값이 담기는지 실행해볼까요?
알림 상자가 열려있는 동안은 코드 진행이 멈춘다는 점은 이미 말씀드렸죠?
첫 번째 알림 상자를 닫으면 이어서 두 번째 알림 상자가 열립니다.
두 번재 알림 상자에는 '사진 4'와 같이 OK
라고 출력이 될 것입니다.
눈치채신 분도 계시겠지만, MsgBox
의 반환값은 사용자가 누른 버튼입니다.
MsgBox
강좌에서 나왔던 표를 기억하시나요?
버튼의 종류 | 수 | 문자열 |
---|---|---|
확인 (기본값) | 0 | OK 또는 O |
확인 취소 | 1 | OKCancel 또는 O/C 또는 OC |
중단 다시 시도 무시 | 2 | AbortRetryIgnore 또는 A/R/I 또는 ARI |
예 아니요 취소 | 3 | YesNoCancel 또는 Y/N/C 또는 YNC |
예 아니요 | 4 | YesNo 또는 Y/N 또는 YN |
다시 시도 취소 | 5 | RetryCancel 또는 R/C 또는 RC |
취소 다시 시도 계속 | 6 | CancelTryAgainContinue 또는 C/T/C 또는 CTC |
이 표에서 각 버튼의 영문명을 확인할 수 있는데, '확인' 버튼은 OK, '취소'는 Cancel 등 각 버튼의 영문명이 반환된다는 것을 알 수 있습니다.
우리는 '확인' 버튼을 눌렀기 때문에 OK
라는 반환값이 var
변수에 담겨 출력되었던 것이죠.
그렇다면 아래와 같은 경우는 어떨까요?
1 var := MsgBox("Press any button", "Title", "Y/N")
2 MsgBox("Selected button: " var)
이미 배우셨듯이, MsgBox
의 Options 매개변수로 "Y/N"
을 전달해주면 예
아니요
버튼이 있는 알림 상자를 만들 수 있습니다.
알림 상자의 예
를 누르면 Yes가 출력되고, 아니요
를 누르면 No가 출력되는 것을 볼 수 있습니다.
이제 MsgBox
에서 반환값을 받아 출력하는 방법을 익히셨나요?
다른 함수도 마찬가지입니다.
함수 호출부에 대입 연산자를 통해 반환값을 변수에 담을 수 있죠.
물론, 아래와 같이 대입하지 않고 바로 사용할 수도 있습니다.
1 MsgBox(CookRamyeon(Param))
위 코드는 CookRamyeon(Param)
의 반환값이 출력되겠죠?
반환값을 쓰는 이유
MsgBox
의 예시를 보았다싶이, 함수를 호출하면 그 호출문으로 값이 반환되어옵니다.
따라서 우리는 반환값을 변수로 받아서 추후에 사용할 수 있습니다.
함수마다 다르지만, 어떤 함수는 실행한 결과를 반환해줍니다. 앞으로는 내장 함수를 강좌할 때 그 반환값을 제가 같이 알려드리도록 하겠습니다. 어떤 값이 반환되는지 알면 여러 동작을 할 수 있습니다.
정리: 함수의 반환값
1. 함수의 호출부는 작업을 마친 후 결괏값을 가지는데, 이를 '함수가 값을 반환한다'라고 한다.
2. 필요한 경우, 함수는 그 실행 결과를 반환한다.
3. 예를 들어서 MsgBox
는 사용자가 선택한 버튼이 무엇인지를 반환한다.
다음 강은 '반복문'에 대해 배우겠습니다.