개발일기장
SUB와 FUNCTION의 차이 본문
기본적으로 하는 일은 같습니다.
차이를 설명하자면,
Sub 은 코딩되어 있는 대로 수행하는 것으로 끝나지만 Function 은 값을 리턴하는 기능이 있습니다.
어떤 일을 처리했는지 않았는지 확인하시려면 Fucntion 을 사용하시면 되고,
확인 필요없다 싶으시면 Sub 을 사용하시면 됩니다.
함수라는 개념은 아실겁니다. VB에선 보통 프로시저라고 합니다.
어떠한 처리를 하기 위한 단위죠.
sub나 function이나 이러한 개념은 같습니다.
단, 처리를 한 후 반환값이 있느냐 없느냐의 차이입니다.
예를 들어... 변수 a, b의 값을 받아 더하기 처리를 하는 함수를 만든다고 합시다.
1. sub plus(Byval a as integer, Byval b as integer)
dim c as integer
c = a + b
end sub
2. function plus(Byval as as integer, Byval b as integer) as integer
dim c as integer
c = a + b
plus = c
end function
1과 같은 경우는 integer형 a, b의 값을 받아 둘을 더한 값을 c라는 지역변수에 할당하고 있습니다.
그리고 이게 다죠.
2와 같은 경우는 integer형 a, b의 값을 받아 둘을 더한 겂을 c라는 지역변수에 할당하는 부분까지는 같습니다.
대신 plus라는 함수명에 c값을 대입하고 있죠. 이 부분이 c라는 값을 반환하는 부분입니다.
다른 부분에서 이 함수들을 호출하는 방법은 다음과 같습니다.
1번 sub형 프로시저는
call plus(1,2)
이게 답니다. 결과값을 알 수가 없습니다.
2번 function형 프로시저는
dim result as integer
result = plus(1,2)
이렇게 하면 function형 프로시저 plus는 3이라는 값을 반환해서 result라는 변수에 넣게 됩니다.
즉 결과값을 받을 수 있게 됩니다.
================================
sub는 보통 함수의 결과를 리턴하지 않을때 쓰고요
반대로 function은 결과를 리턴할때 쓰죠..
====================================
[출처] VB - Sub문과 Function문 차이점|작성자 얄리
보통 VB 에서 작성한 코드를 프로시저라고 부릅니다. 각 프로시져는 특정 업무를 수행 하도록 하는데 보통의 경우 Sub 프로시저나 Function 프로시저를 사용하는데 두 개의 차이점과 기본적인 사용법을 정리 해봅니다.
Sub
Sub 프로시저는 특정한 업무를 수행하는 것으로 그 역할을 다합니다. 계산을 하라면 계산을 하고 메시지 박스를 출력하라면 출력을 하고 그 임무입니다.
기본 사용 방법은 아래와 같습니다.
Private Sub ShowAdd(Num1 As Double, Num2 As Double)
Dim Result As Double
Result = Num1 + Num2
Sheet1.Cells(1, 1) = Result
End Sub
두 개의 숫자를 인수로 받아 더한 다음 Sheet1 의 첫번째 셀에 그 결과를 내보내는 작업을 수행하는 Sub 프로시저입니다.
Function
Function 프로시저는 특정한 업무를 수행한다는 것은 같지만, 업무 수행에서 끝나는 것이 아니라 그 결과를 사용자에게 반환하는 것이 그 업무의 마지막입니다.
Function 프로시저의 기본 사용 방법은 아래와 같습니다.
Private Function Add(Num1 As Double, Num2 As Double)
Dim Result As Double
Result = Num1 + Num2
Add = Result
End Function
위 Sub 프로시저와 같이 인수를 받아 더하는 작업을 수행하지만 그 결과를 사용자에게 반환하는 것으로 그 임무를 다합니다.
Sub 과 Function 의 혼용
위 두가지 예제를 함께 사용 해봅시다. Add Function 을 이용해 값을 더하고 ShowAdd Sub 을 조금 변형해 원래의 작업을 수행 하도록 해봅시다.
Private Function Add(Num1 As Double, Num2 As Double)
Dim Result As Double
Result = Num1 + Num2
Add = Result
End Function
Private Sub ShowAdd(Num1 As Double, Num2 As Double)
Sheet1.Cells(1, 1) = Add(Num1, Num2)
End Sub
ShowAdd Sub 이 훨씬 간단해졌죠? ShowAdd Sub 은 인수 Num1 과 Num2를 받아 스스로가 계산하지 않고, 그대로 Add Function 에 넘겨서 결과 값만 받아와 Sheet1 의 셀에 표시 하는 것입니다.
'프로그래밍 > Visual Basic 6.0' 카테고리의 다른 글
프로시져(Procedure) (0) | 2018.06.15 |
---|