BAI GIANG VB2
Chia sẻ bởi Trần Ngọc Vũ An |
Ngày 23/10/2018 |
48
Chia sẻ tài liệu: BAI GIANG VB2 thuộc Bài giảng khác
Nội dung tài liệu:
Bài giảng
Cấu trúc lệnh điều khiển
I. Cấu trúc chọn
1. If...Then
Cấu trúc một dòng lệnh:
If <điều kiện> Then
Cấu trúc nhiều dòng lệnh:
If <điều kiện> Then
End If
Diều kiện ở đây là một biểu thức Logic tr? về kết qu? True / False.
Ví dụ: nh?p vo m?t s?, ki?m tra xem s? dú cú ph?i l ch?n khụng? In thụng bỏo
Sub InputNum()
Dim A as byte
A=inputbox("nhap vao so a")
If (A MOD 2) = 0Then
msgbox "A la m?t s? ch?n"
End If
End Sub
2. If ...Then...Else
Có ph¸p :
If < ®iÒu kiÖn1> Then
[ Khèi lÖnh 1]
[ ElseIf <®iÒu kiÖn 2> Then
[khèi lÖnh 2]...........
[Else]
[khèi lÖnh n]
End If
Ví d? 1
If tuoi <18 then
Msgbox "Ban chua den tuoi lao dong"
ElseIf tuoi <60 then
Msgbox " Ban van trong do tuoi lao dong"
Else
Msgbox "Ban da het tuoi lao dong"
End If
ví dụ 2
Dim Number, Digits, MyString
Number = 53
If Number < 10 Then
Digits = 1
ElseIf Number < 100 Then
Digits = 2
Else
Digits = 3
End If
If Digits = 1 Then MyString = "One" Else MyString = "More than one"
3 Select Case
Nhằm gi?i quyết trường hợp quá nhiều ElseIf lồng nhau, giúp cho chương trỡnh sáng sủa dễ đọc. Biểu thức logic được so sánh một lần vào đầu cấu trúc. Sau đó VB so sánh với từng Case, nếu bằng nó thực hiện khối lệnh trong Case đó.
Mỗi danh sách biểu thức có thể chứa một hoặc nhiều giá trị. Các giá trị cách nhau nhờ dấu ph?y. Mỗi khối lệnh có thể không chứa hoặc chứa một hay nhiều dòng lệnh. Nếu có hơn một Case tho? mãn điều kiện thỡ khối lệnh của Case đầu tiên tho? mãn sẽ được thi hành. Case Else không nhất thiết ph?i có, nó dùng trong trường hợp còn lại của các Case trước đó.
Cú pháp:
Select Case
[Case
[khối lệnh 1] ]
[ Case < danh sách biểu thức 2> [khối lệnh 2] ] ......................
[Case Else
[khối lệnh n] ]
End Select
Select Case State
Case "Michigan"
Case "Minnesota"
Message = "A wonderful state to visit if you enjoy fresh-water lakes."
Case "Virginia"
Message = "A wide variety of historical landmarks and beautiful mountains”
Case "Arizona"
Message = "A wonderful getaway for those who love heat with low humidity."
Case "Colorado"
Message = "Virtually unsurpassed for its majestic mountains and rivers."
Case Else
Message = "No specific information is available about this state."
End Select
II. Vòng lặp xác định
1. For ...Next
Dïng kiÓu vßng lÆp nµy khi ta biÕt tríc sè lÇn lÆp. Ta dïng biÕn ®Õm tăng dÇn hoÆc giảm dÇn trong vßng lÆp.
Có ph¸p:
For=<®iÓm ®Çu> To <®iÓm cuèi> [Step ]
< khèi lÖnh>
[Exit For]
Next []
Trong đó:
biến đếm, điểm đầu, điểm cuối và bước nh?y có kiểu d? liệu số. Bước nh?y là tuỳ chọn và có thể dương hoặc âm. Nếu bước nh?y là số dương, điểm đầu ph?i nhỏ hơn hoặc bằng điểm cuối. Nếu không, khối lệnh sẽ không được thi hành. Ngược lại, nếu bước nh?y âm, điểm đầu ph?i lớn hơn điểm cuối.
Nếu Step không được chỉ ra, mặc định bước nh?y là 1.
Ví dụ: tính tổng các số lẻ từ 1 đến 100
Dim I, S as integer
S=0
For I= 1 to 100 step 2
S=S+I
Next I
Msgbox “Tong cac so le trong khoang 1-100 la:” & str(S)
2. For Each...Next
T¬ng tù nh For...Next , nhng nã lÆp khèi lÖnh theo sè phÇn tö cña mét tËp hîp c¸c ®èi tîng hay mét mảng thay và sè lÇn lÆp x¸c ®Þnh. Vßng lÆp nµy tiÖn lîi khi ta kh«ng biÕt chÝnh x¸c cã bao nhiªu phÇn tö trong tËp hîp.
Có ph¸p:
For Each In
[ Exit For]
Next
Dể dùng For Each ...Next:
ãPhần tử trong tập hợp chỉ có thể là biến Variant, biến Object, hoặc đối tượng trong Object Browser.
ãPhần tử trong m?ng chỉ có thể là biến Variant
Luu ý
Không dùng For Each ... Next với m?ng chứa kiểu ký tự định nghĩa vỡ Variant không chứa kiểu ký tự định nghĩa.
Ví dụ:
Sub ListTableDefs()
Dim objDb As Database
Dim MyTableDef As TableDef
Set objDb=OpenDatabase(“c:vbiblio.mdb”, True, False)
For Each MyTableDef In objjDb.TableDefs()
List1.AdddItem MyTableDef . Name
Next MyTableDef
End Sub
III. Vòng lặp không xác định
1.Vßng lÆp Do...Loop
Thi hµnh khèi lÖnh víi sè vßng lÆp kh«ng x¸c ®Þnh tríc, trong ®ã cã mét biÓu thøc ®iÒu kiÖn dïng ®Ó so s¸nh vµ quyÕt ®Þnh vßng lÆp cã tiÕp tôc nữa kh«ng.
Cã thÓ tho¸t khái vßng lÆp nhê c©u lÖnh Exit Do.
KiÓu 1: LÆp trong khi ®iÒu kiÖn lµ True.
Do While <®iÒu kiÖn>
[Exit Do]
Loop
Vi d?:
Again = True
DoubleIt = 1
Do While Again = True
If MsgBox ("Current total is " & DoubleIt & ". Double it again ?", vbYesNo) = vbYes Then
DoubleIt = DoubleIt * 2
Else
Again = False
End If
Loop
· KiÓu 2: Vßng lÆp lu«n cã Ýt nhÊt mét lÇn thi hµnh khèi lÖnh
Do
Loop While <®iÒu kiÖn>
· KiÓu 3: LÆp trong khi ®iÒu kiÖn lµ False
Do Until <®iÒu kiÖn>
[Exit Do ]
Loop
Ví dụ: Trong ví dụ trên nếu ta dùng vòng lặp Do Until ...Loop thỡ ta có mã như sau:
Again = True
DoubleIt = 1
Do Until Again = False
If MsgBox("Current total is " & DoubleIt & ". Double it again ?", vbYesNo) = vbYes Then
DoubleIt = DoubleIt * 2
Else
Again = False
End If
Loop
Kiểu 4: Lặp trong khi điều kiện là False và có ít nhất một lần được thi hành khối lệnh.
cỳ phỏp:
Do
Loop Until <điều kiện>
Vớ d?:
I=2
Do
I=I*2
Loop Until I>1000
2. Vòng lặp While... Wend
Tương t? như vòng lặp Do... While, nhưng ta không thể thoát khỏi vòng lặp bằng lệnh Exit. Vỡ vậy vòng lặp này chỉ thoát khỏi khi biểu thức điều kiện là sai.
Cỳ phỏp:
While
Wend
Ví dụ:
While sPassword <> "vitti"
sPassword=InputBox$ ("Enter Password")
Wend
Cấu trúc lệnh điều khiển
I. Cấu trúc chọn
1. If...Then
Cấu trúc một dòng lệnh:
If <điều kiện> Then
Cấu trúc nhiều dòng lệnh:
If <điều kiện> Then
End If
Diều kiện ở đây là một biểu thức Logic tr? về kết qu? True / False.
Ví dụ: nh?p vo m?t s?, ki?m tra xem s? dú cú ph?i l ch?n khụng? In thụng bỏo
Sub InputNum()
Dim A as byte
A=inputbox("nhap vao so a")
If (A MOD 2) = 0Then
msgbox "A la m?t s? ch?n"
End If
End Sub
2. If ...Then...Else
Có ph¸p :
If < ®iÒu kiÖn1> Then
[ Khèi lÖnh 1]
[ ElseIf <®iÒu kiÖn 2> Then
[khèi lÖnh 2]...........
[Else]
[khèi lÖnh n]
End If
Ví d? 1
If tuoi <18 then
Msgbox "Ban chua den tuoi lao dong"
ElseIf tuoi <60 then
Msgbox " Ban van trong do tuoi lao dong"
Else
Msgbox "Ban da het tuoi lao dong"
End If
ví dụ 2
Dim Number, Digits, MyString
Number = 53
If Number < 10 Then
Digits = 1
ElseIf Number < 100 Then
Digits = 2
Else
Digits = 3
End If
If Digits = 1 Then MyString = "One" Else MyString = "More than one"
3 Select Case
Nhằm gi?i quyết trường hợp quá nhiều ElseIf lồng nhau, giúp cho chương trỡnh sáng sủa dễ đọc. Biểu thức logic được so sánh một lần vào đầu cấu trúc. Sau đó VB so sánh với từng Case, nếu bằng nó thực hiện khối lệnh trong Case đó.
Mỗi danh sách biểu thức có thể chứa một hoặc nhiều giá trị. Các giá trị cách nhau nhờ dấu ph?y. Mỗi khối lệnh có thể không chứa hoặc chứa một hay nhiều dòng lệnh. Nếu có hơn một Case tho? mãn điều kiện thỡ khối lệnh của Case đầu tiên tho? mãn sẽ được thi hành. Case Else không nhất thiết ph?i có, nó dùng trong trường hợp còn lại của các Case trước đó.
Cú pháp:
Select Case
[Case
[khối lệnh 1] ]
[ Case < danh sách biểu thức 2> [khối lệnh 2] ] ......................
[Case Else
[khối lệnh n] ]
End Select
Select Case State
Case "Michigan"
Case "Minnesota"
Message = "A wonderful state to visit if you enjoy fresh-water lakes."
Case "Virginia"
Message = "A wide variety of historical landmarks and beautiful mountains”
Case "Arizona"
Message = "A wonderful getaway for those who love heat with low humidity."
Case "Colorado"
Message = "Virtually unsurpassed for its majestic mountains and rivers."
Case Else
Message = "No specific information is available about this state."
End Select
II. Vòng lặp xác định
1. For ...Next
Dïng kiÓu vßng lÆp nµy khi ta biÕt tríc sè lÇn lÆp. Ta dïng biÕn ®Õm tăng dÇn hoÆc giảm dÇn trong vßng lÆp.
Có ph¸p:
For
< khèi lÖnh>
[Exit For]
Next [
Trong đó:
biến đếm, điểm đầu, điểm cuối và bước nh?y có kiểu d? liệu số. Bước nh?y là tuỳ chọn và có thể dương hoặc âm. Nếu bước nh?y là số dương, điểm đầu ph?i nhỏ hơn hoặc bằng điểm cuối. Nếu không, khối lệnh sẽ không được thi hành. Ngược lại, nếu bước nh?y âm, điểm đầu ph?i lớn hơn điểm cuối.
Nếu Step không được chỉ ra, mặc định bước nh?y là 1.
Ví dụ: tính tổng các số lẻ từ 1 đến 100
Dim I, S as integer
S=0
For I= 1 to 100 step 2
S=S+I
Next I
Msgbox “Tong cac so le trong khoang 1-100 la:” & str(S)
2. For Each...Next
T¬ng tù nh For...Next , nhng nã lÆp khèi lÖnh theo sè phÇn tö cña mét tËp hîp c¸c ®èi tîng hay mét mảng thay và sè lÇn lÆp x¸c ®Þnh. Vßng lÆp nµy tiÖn lîi khi ta kh«ng biÕt chÝnh x¸c cã bao nhiªu phÇn tö trong tËp hîp.
Có ph¸p:
For Each
[ Exit For]
Next
Dể dùng For Each ...Next:
ãPhần tử trong tập hợp chỉ có thể là biến Variant, biến Object, hoặc đối tượng trong Object Browser.
ãPhần tử trong m?ng chỉ có thể là biến Variant
Luu ý
Không dùng For Each ... Next với m?ng chứa kiểu ký tự định nghĩa vỡ Variant không chứa kiểu ký tự định nghĩa.
Ví dụ:
Sub ListTableDefs()
Dim objDb As Database
Dim MyTableDef As TableDef
Set objDb=OpenDatabase(“c:vbiblio.mdb”, True, False)
For Each MyTableDef In objjDb.TableDefs()
List1.AdddItem MyTableDef . Name
Next MyTableDef
End Sub
III. Vòng lặp không xác định
1.Vßng lÆp Do...Loop
Thi hµnh khèi lÖnh víi sè vßng lÆp kh«ng x¸c ®Þnh tríc, trong ®ã cã mét biÓu thøc ®iÒu kiÖn dïng ®Ó so s¸nh vµ quyÕt ®Þnh vßng lÆp cã tiÕp tôc nữa kh«ng.
Cã thÓ tho¸t khái vßng lÆp nhê c©u lÖnh Exit Do.
KiÓu 1: LÆp trong khi ®iÒu kiÖn lµ True.
Do While <®iÒu kiÖn>
[Exit Do]
Loop
Vi d?:
Again = True
DoubleIt = 1
Do While Again = True
If MsgBox ("Current total is " & DoubleIt & ". Double it again ?", vbYesNo) = vbYes Then
DoubleIt = DoubleIt * 2
Else
Again = False
End If
Loop
· KiÓu 2: Vßng lÆp lu«n cã Ýt nhÊt mét lÇn thi hµnh khèi lÖnh
Do
Loop While <®iÒu kiÖn>
· KiÓu 3: LÆp trong khi ®iÒu kiÖn lµ False
Do Until <®iÒu kiÖn>
[Exit Do ]
Loop
Ví dụ: Trong ví dụ trên nếu ta dùng vòng lặp Do Until ...Loop thỡ ta có mã như sau:
Again = True
DoubleIt = 1
Do Until Again = False
If MsgBox("Current total is " & DoubleIt & ". Double it again ?", vbYesNo) = vbYes Then
DoubleIt = DoubleIt * 2
Else
Again = False
End If
Loop
Kiểu 4: Lặp trong khi điều kiện là False và có ít nhất một lần được thi hành khối lệnh.
cỳ phỏp:
Do
Loop Until <điều kiện>
Vớ d?:
I=2
Do
I=I*2
Loop Until I>1000
2. Vòng lặp While... Wend
Tương t? như vòng lặp Do... While, nhưng ta không thể thoát khỏi vòng lặp bằng lệnh Exit. Vỡ vậy vòng lặp này chỉ thoát khỏi khi biểu thức điều kiện là sai.
Cỳ phỏp:
While
Wend
Ví dụ:
While sPassword <> "vitti"
sPassword=InputBox$ ("Enter Password")
Wend
* Một số tài liệu cũ có thể bị lỗi font khi hiển thị do dùng bộ mã không phải Unikey ...
Người chia sẻ: Trần Ngọc Vũ An
Dung lượng: |
Lượt tài: 1
Loại file:
Nguồn : Chưa rõ
(Tài liệu chưa được thẩm định)