4. Truyền thamsố
4.2. Truyền tham biến
Để truyền tham số theo dạng tham biến chúng ta phải dùng từ khoá ByRef trước những khao báo tham sốhình thức cần thiết. Mặc nhiên các tham số trong VB được truyền theo dạng tham biến, chính vì vậy các tham số hình thức không được khai báo với từ khoá ByRef hay ByVal sẽ được truyền theo dạng tham biến.
Khi truyền tham biến, mọi thao tác trên tham sốhình thức đều tácđộng trực tiếp lên tham số thực. Có nghĩa là khi gọi thực hiện một ctrìh con có truyền tham biến thì các thay đổi gtrị trên tham sốhình thức sẽ làm thay đổi gtrị của tham số thực. Ví dụ với hàm Songuyento() trên đây, nếu được khai báo là:
Function Songuyento(ByRef m As Long) As Boolean Dim i As Integer, n As Integer
If m = 1 Then Songuyento = False Else
n = m \ 2 For i = 2 To n
If (m Mod i = 0) Then Exit For Next If i <= n Then Songuyento = False Else Songuyento = True End If End Function
Khi đó, chúng ta có thể kiểm tra mộtgiá trị k có phải số nguyên tố hay không như sau: Dim k As Long, kt As Boolean, thongbao As String
k = -6
kt = Songuyento(k) If kt = True Then
thongbao = str(k) & “ la so nguyen to” Else
thongbao = str(k) & “ khong la so nguyen to” End If
MsgBox thongbao
Kết quả thực hiện của các dòng lệnh trên đây sẽ là “6 khong la so nguyen to” thay vì “-6 khong la so nguyen to”. Kết quả này không hiển thị đúng giá trị k lúcđầu. Đó là vì giá trị