VB.net là ngôn ngữ lập trình hướng đối tượng bậc cao.Theo mình đây là một ngôn ngữ rất mạch lạc ,dễ học và dễ nhớ.Chú ý là kiến thức mình học được đều là tự học,qua mạng,bạn bè.Không từ bất kì thầy cô nào,nên đôi khi một số điều mình hiểu ko đúng 100% .Có gì sai mong ai biết góp ý để mình hoàn thiện kiến thức.
Cấu trúc của Vb.net đc miêu ta như sau
Ta dùng Console.ReadKey() để tạm dừng chương trình mà xem kết quả.Nếu như ko có câu lệnh này thì chạy xong nó tắt luôn.Ta chưa kịp nhìn thấy gì cả.
Như ví dụ trên thì ta thấy có thể viết ra màn hình bằng 2 lệnh Console.Write() và Console.WriteLine().
2 cái này nó khác nhau ở chỗ 1 cái in ra ở trên cùng một dòng và một cái in ra xong nó xuống dòng.Tương tự điều này cho Console.Read() và Console.ReadLine().
Khi khai báo biến,có một số kiểu khai báo như sau:
Public :Sử dựng toàn chương trình,có phạm vi toàn cục
Private :Sử dụng đc trong phạm vi đc khai báo và phải dùng bên ngoài thủ tục.
Protected :Như các ngôn ngữ khác ,Sử dụng trong phạm vi lớp khai báo và lớp con.
Friend :Sử dụng trong phạm vi project.
Dim :Sử dụng trong phạm vi như private và đc dùng bên trong thủ tục.
Ở trong Function Chuongtrinh ,ta khai báo biến a có kiểu là tham trị,mọi thay đổi trong Function Chuongtrinh() đều không dẫn đến sự thay đổi của a bên ngoài.Nếu ta khai báo kiểu tham chiếu như sau thì kết quả biến a nhận đc cuối cùng sẽ khác đi
kết quả nhận đc khi nhập số 3 là -->gia tri binh phuong cua bien a:16
----------------------------------->gia tri của a :4
ta thấy biến a đã tăng lên một.Nếu ta thực hiện khai bái ByVal thì điều này không xảy ra.
Các kiểu biến trong vb.net: Byte,Boolean,Integer,Long,Single,Double,String,Object,Variant.....
trong đó nếu ta khai báo là Variant thì biến tạm thời chưa xác định là kiểu gì,kiểu của nó sẽ đc xác định khi ta khởi tạo.
2.1 Cấu trúc điều kiện If...End if
Cấu trúc điều kiện đc mô ta như sau:
Bài 1:Cấu trúc vb.net và khai báo biến.
Đầu tiên để làm quen với cấu trúc lệnh ta thực thi các ví dụ trên Console application cho dễ nhìn.Cấu trúc của Vb.net đc miêu ta như sau
Public/Private Function/Sub Tên(Biến tham chiếu hoặc tham trị)ta thấy trong visual basic kết thúc các câu lệnh ko có kí tự ngắt lệnh,để kết thúc câu lệnh ta buộc phải xuống dòng,khác với các ngôn ngữ khác.Và để comment trên visual basic ta dùng dấu nháy đơn đặt trước comment. Ví dụ sau đây yêu cầu nhập 1 số nguyên và in ra bình phương của nó.
Dim bien_1 As Kiểu_biến_1 'khai bao bien
Dim bien_2 As Kiểu_biến_2
Command_1
Command_2
End Sub/Function
Module Module1Ví dụ như ta nhập vào là 3 thì kết quả in ra là --> gia tri binh phuong cua bien a:9
Sub Main()
Dim a As Integer 'khai báo biến a là kiểu integer
Console.WriteLine("nhập giá trị a")
a = Integer.Parse(Console.ReadLine())
Dim result As Integer = Chuongtrinh(a)
Console.Write("gia tri binh phuong cua bien a:")
Console.WriteLine(result)
Console.ReadKey()
End Sub
Public Function Chuongtrinh(ByVal a) As Integer
Return a * a
End Function
End Module
Ta dùng Console.ReadKey() để tạm dừng chương trình mà xem kết quả.Nếu như ko có câu lệnh này thì chạy xong nó tắt luôn.Ta chưa kịp nhìn thấy gì cả.
Như ví dụ trên thì ta thấy có thể viết ra màn hình bằng 2 lệnh Console.Write() và Console.WriteLine().
2 cái này nó khác nhau ở chỗ 1 cái in ra ở trên cùng một dòng và một cái in ra xong nó xuống dòng.Tương tự điều này cho Console.Read() và Console.ReadLine().
Khi khai báo biến,có một số kiểu khai báo như sau:
Public :Sử dựng toàn chương trình,có phạm vi toàn cục
Private :Sử dụng đc trong phạm vi đc khai báo và phải dùng bên ngoài thủ tục.
Protected :Như các ngôn ngữ khác ,Sử dụng trong phạm vi lớp khai báo và lớp con.
Friend :Sử dụng trong phạm vi project.
Dim :Sử dụng trong phạm vi như private và đc dùng bên trong thủ tục.
Ở trong Function Chuongtrinh ,ta khai báo biến a có kiểu là tham trị,mọi thay đổi trong Function Chuongtrinh() đều không dẫn đến sự thay đổi của a bên ngoài.Nếu ta khai báo kiểu tham chiếu như sau thì kết quả biến a nhận đc cuối cùng sẽ khác đi
Module Module1
Sub Main()
Dim a As Integer 'khai báo biến a là kiểu integer
Console.WriteLine("nhập giá trị a")
a = Integer.Parse(Console.ReadLine())
Dim result As Integer = Chuongtrinh(a)
Console.Write("gia tri binh phuong cua bien a:")
Console.WriteLine(result)
Console.Write("gia tri cua a :")
Console.WriteLine(a)
Console.ReadKey()
End Sub
Public Function Chuongtrinh(ByRef a As Integer) As Integer
a = a + 1
Return a * a
End Function
End Module
kết quả nhận đc khi nhập số 3 là -->gia tri binh phuong cua bien a:16
----------------------------------->gia tri của a :4
ta thấy biến a đã tăng lên một.Nếu ta thực hiện khai bái ByVal thì điều này không xảy ra.
Các kiểu biến trong vb.net: Byte,Boolean,Integer,Long,Single,Double,String,Object,Variant.....
trong đó nếu ta khai báo là Variant thì biến tạm thời chưa xác định là kiểu gì,kiểu của nó sẽ đc xác định khi ta khởi tạo.
Bài 2:Cấu trúc điều khiển:
2.1 Cấu trúc điều kiện If...End ifCấu trúc điều kiện đc mô ta như sau:
If <điều kiện> then
[ khối lệnh ]
Else :[khối lệnh khác]
End if
xét ví dụ sau:
kết quả ta nhận đc như sau --->
ta nhận đc kết quả như sau:
Select Case.
cấu trúc đc miêu tả như sau :
Để hiểu rõ hơn ta xem ví dụ sau:
kết quả -->
2.3 Vòng lặp
Ta xem xét về vòng lặp For...Next trước
Cấu trúc For...Next đc miêu ta như sau:
For<khởi tạo giá trị đầu> to <giá trị cuối> Step [bước nhảy]
[khối lệnh]
Next biến_khởi_tạo
Xét ví dụ sau để nắm rõ cách dùng:
kết quả cho ra là -->
Tất nhiên ta có thể lồng nhiều vòng for với nhau.Thường dùng đối với mảng đa chiều .
Vòng lặp For Each ...Next
Tương tự như trong các ngôn ngữ khác,trong vb.net khi ta cần lặp trên một tập hợp (mảng) ta có cấu trúc lặp For Each...Next
Cấu trúc điều khiển For Each...Next đc mô ta như sau
Xem ví dụ sau đây :Tính tổng các phần tử của mảng [0,1,2,3,4]
kết quả cho ra là --->10
Vòng Lặp Do...Loop
Ở đây ta có 2 cặp dùng ,kiểu Do While ...Loop và kiểu Do...Loop While
2 kiểu này đơn giản,nếu bạn đã học qua các ngôn ngữ lập trình khác như C ,C++ ,C# thì nó tương ứng với vòng lặp là While (Điều kiện ) {Khối lệnh thực hiện} và Do {Khối lệnh thực hiện } While (Điều kiện)
Ở kiểu Do While ...Loop nó kiểm tra điều kiện trước,nếu đúng thì làm và kiểm tra điều kiện lại,đúng thì làm tiếp.Ta xét ví dụ sau:Tính tổng từ 1 đến 100
kết quả nhận đc là --->5050
Với Do While...Loop thì có thể có trường hợp không có câu lệnh nào đc thực hiện (ở đây là ko có vòng lặp nào) Nhưng đối với Do...Loop While thì luôn luôn có một vòng đc thực hiện.Xem ví dụ sau nhé
ở đây i = limit là sai nhưng nó vẫn thực hiện một lần trong khối Do và kết quả in ra là -->1
Ngoài ra còn có một kiểu vòng lặp khác
Vòng Lặp While...End While
Hoạt động của While...Wend đc mô tả như sau:
While < điều kiện>
Khối lệnh
End While
Vòng lặp này giống với vòng lặp Do While...Loop ở trên.
Khi điều kiện đúng thì nó thực hiện khối lệnh,nếu sai thì nó thoát và thực hiện lệnh sau End While
tất nhiên kết quả cũng cho ra là -->5050
Hàm đc xem là một chương trình con,Ngoài hàm ra thì còn có thủ tục,tương tự như hàm,nhưng nó không trả về một giá trị nào cả.
Cú pháp của thủ tục
Vì ta muốn giá trị của result khi đưa vào thủ tục,đc thay đổi sau khi tính toán trong thủ tục nên ta khai báo nó kiểu tham chiếu ByRef
kết quả nhận đc là -->
Sub Main()
Dim Account As String
Dim Pass As String
Console.Write("Enter your account:")
Account = Console.ReadLine()
Console.Write("Enter your password:")
Pass = Console.ReadLine()
If (Account = "Admin" And Pass = "systemvhbgroup") Then
Console.WriteLine("Welcom Admin to system VHB")
Else : Console.WriteLine("Welcom guest to VHB")
End If
Console.ReadKey()
End Sub
kết quả ta nhận đc như sau --->
Enter your account:Admin
Enter your password:systemvhbgroup
Welcom Admin to system VHB
Để lồng nhiều câu If với nhau,ta đặt ở giữa là ElseIf rồi tiếp tục viết điều kiện,rồi Then như ví dụ sau
Sub Main()
Dim Account As String
Dim Pass As String
Console.Write("Enter your account:")
Account = Console.ReadLine()
Console.Write("Enter your password:")
Pass = Console.ReadLine()
If (Account = "Admin" And Pass = "systemvhbgroup") Then
Console.WriteLine("Welcom Admin to system VHB")
ElseIf (Account = "Mod" And Pass = "systemvhb") Then
Console.WriteLine("Welcom Mod to system VHB")
Else : Console.WriteLine("Welcom guest to VHB")
End If
Console.ReadKey()
End Sub
ta nhận đc kết quả như sau:
Enter your account:Mod2.2 Câu lệnh rẽ nhánh
Enter your password:systemvhb
Welcom Mod to system VHB
Select Case.
cấu trúc đc miêu tả như sau :
Select Case <biểu thức>
Case <giá trị 1>
khối lệnh 1
Case <giá trị 2>
khối lệnh 2
.........
End Select
Để hiểu rõ hơn ta xem ví dụ sau:
Case Else :Thêm vào nếu như ta muốn lấy các trường hợp không nằm trong các trường hợp Case 1,Case 2...,Case n.
Sub Main()
Dim bien As Integer
Do
Console.Write("Enter a number from 1 to 5:")
bien = Console.ReadLine()
Loop While (bien >= 5)
Select Case bien
Case 1
Console.WriteLine("Your value is 1.")
Case 2
Console.WriteLine("Your value is 2.")
Case 3
Console.WriteLine("Your value is 3.")
Case 4
Console.WriteLine("Your value is 4.")
Case Else
Console.WriteLine("Your value is 0")
End Select
Console.ReadKey()
End Sub
kết quả -->
Enter a number from 1 to 5:3Your value is 3.
2.3 Vòng lặp
Ta xem xét về vòng lặp For...Next trước
Cấu trúc For...Next đc miêu ta như sau:
For<khởi tạo giá trị đầu> to <giá trị cuối> Step [bước nhảy]
[khối lệnh]
Next biến_khởi_tạo
Xét ví dụ sau để nắm rõ cách dùng:
Sub Main()
Dim Str As String = "Welcome to System 'Vietnamese Hacking Black-Hat'"
Console.Write("Enter your number of loop:")
Dim count As Integer = Console.ReadLine()
Dim i
For i = 1 To count Step 1
Console.WriteLine(Str)
Next i
Console.ReadKey()
End Sub
kết quả cho ra là -->
Enter your number of loop:6Chú ý ,nếu ta muốn thoát khỏi vòng For trong một trường hợp nào đó,giả sử như khi biến count =4 chẳng hạn,thì ta dùng từ khóa Exit For.Còn trong trường hợp ta muốn bỏ thực hiện khối lệnh tại một điều kiện nào đó,giả sử như cũng tại count = 4 thì ta dùng từ khóa Continue For ,khi gặp lệnh này,nó bỏ qua lệnh và bước sang vòng lặp tiếp theo.
Welcome to System 'Vietnamese Hacking Black-Hat'
Welcome to System 'Vietnamese Hacking Black-Hat'
Welcome to System 'Vietnamese Hacking Black-Hat'
Welcome to System 'Vietnamese Hacking Black-Hat'
Welcome to System 'Vietnamese Hacking Black-Hat'
Welcome to System 'Vietnamese Hacking Black-Hat'
Tất nhiên ta có thể lồng nhiều vòng for với nhau.Thường dùng đối với mảng đa chiều .
Vòng lặp For Each ...Next
Tương tự như trong các ngôn ngữ khác,trong vb.net khi ta cần lặp trên một tập hợp (mảng) ta có cấu trúc lặp For Each...Next
Cấu trúc điều khiển For Each...Next đc mô ta như sau
For Each Biến_Phần_tử In Tập_hợp
[Các câu lệnh]
[Exit For] 'như đã nói ở trên.
[Continue For]
Next <Biến_Phần_tử>
Xem ví dụ sau đây :Tính tổng các phần tử của mảng [0,1,2,3,4]
Sub Main()
Dim S As Integer = 0
Dim Tong(5) As Integer
Dim i
For i = 0 To 4 Step 1
Tong(i) = i
Next
For Each k As Integer In Tong
S = S + k
Next
Console.Write(S)
Console.ReadKey()
End Sub
Vòng Lặp Do...Loop
Ở đây ta có 2 cặp dùng ,kiểu Do While ...Loop và kiểu Do...Loop While
2 kiểu này đơn giản,nếu bạn đã học qua các ngôn ngữ lập trình khác như C ,C++ ,C# thì nó tương ứng với vòng lặp là While (Điều kiện ) {Khối lệnh thực hiện} và Do {Khối lệnh thực hiện } While (Điều kiện)
Ở kiểu Do While ...Loop nó kiểm tra điều kiện trước,nếu đúng thì làm và kiểm tra điều kiện lại,đúng thì làm tiếp.Ta xét ví dụ sau:Tính tổng từ 1 đến 100
Sub Main()
Dim limit As Integer = 100
Dim i As Integer = 1
Dim S As Integer = 0
Do While (i <= limit)
S = S + i
i = i + 1
Loop
Console.WriteLine(S)
Console.ReadKey()
End Sub
kết quả nhận đc là --->5050
Với Do While...Loop thì có thể có trường hợp không có câu lệnh nào đc thực hiện (ở đây là ko có vòng lặp nào) Nhưng đối với Do...Loop While thì luôn luôn có một vòng đc thực hiện.Xem ví dụ sau nhé
Sub Main()
Dim limit As Integer = 100
Dim i As Integer = 1
Dim S As Integer = 0
Do
S = S + i
i = i + 1
Loop While (i = limit)
Console.WriteLine(S)
Console.ReadKey()
End Sub
ở đây i = limit là sai nhưng nó vẫn thực hiện một lần trong khối Do và kết quả in ra là -->1
Ngoài ra còn có một kiểu vòng lặp khác
Vòng Lặp While...End While
Hoạt động của While...Wend đc mô tả như sau:
While < điều kiện>
Khối lệnh
End While
Vòng lặp này giống với vòng lặp Do While...Loop ở trên.
Khi điều kiện đúng thì nó thực hiện khối lệnh,nếu sai thì nó thoát và thực hiện lệnh sau End While
Sub Main()
Dim limit As Integer = 100
Dim i As Integer = 1
Dim S As Integer = 0
While (i <= limit)
S = S + i
i = i + 1
End While
Console.WriteLine(S)
Console.ReadKey()
End Sub
tất nhiên kết quả cũng cho ra là -->5050
Bài 3:Hàm Function
Cú pháp đc mô tả như sau
[Public/Private] Function <tên hàm> (danh sách tham trị,tham biến) As <kiểu_dữ_liêu>Trở lại với ví dụ đầu tiên trong bài,trong ví dụ này ta có một function tên là Chuongtrinh() trả về giá trị bình phương của một số
Khối lệnh
End Function
Sub Main()
Dim a As Integer 'khai báo biến a là kiểu integer
Console.WriteLine("nhập giá trị a")
a = Integer.Parse(Console.ReadLine())
Dim result As Integer = Chuongtrinh(a)
Console.Write("gia tri binh phuong cua bien a:")
Console.WriteLine(result)
Console.ReadKey()
End Sub
Public Function Chuongtrinh(ByVal a) As Integer
Return a * a
End Function
Cú pháp của thủ tục
[Public/Private] Sub <tên_thủ_tuc> (Danh sách tham trị hoặc tham biến)Ta lấy ví dụ về function trên sửa lại thành một ví dụ về thủ tục nhé.
Thủ tục viết ở đây
End Sub
Sub Main()
Dim a As Integer 'khai báo biến a là kiểu integer
Console.WriteLine("nhập giá trị a")
a = Integer.Parse(Console.ReadLine())
Dim result As Integer
Chuongtrinh(a, result)
Console.Write("gia tri binh phuong cua bien a:")
Console.WriteLine(result)
Console.ReadKey()
End Sub
Public Sub Chuongtrinh(ByVal a, ByRef result)
result = a * a
End Sub
Vì ta muốn giá trị của result khi đưa vào thủ tục,đc thay đổi sau khi tính toán trong thủ tục nên ta khai báo nó kiểu tham chiếu ByRef
kết quả nhận đc là -->
nhập giá trị a
4
gia tri binh phuong cua bien a:16
Không có nhận xét nào:
Đăng nhận xét