Mục tiêu:
- Nắm vững được các câu lệnh vịng lặp và rẽ nhánh - Sử dụng được các câu lệnh cơ bản trong lập trình
+ Do…Loop: là một vịng lặp vơ tận. các câu lệnh bên trong Do…Loop sẽ được thực hiện lặp đi lặp lại mãi cho đến khi gặp lệnh Exit Do.
Do
[DoEvents] Các câu lệnh Loop
Để tránh bị treo máy do rơi váo vịng lặp vơ tận, cĩ thể sử dụng Doevents
+ Do While “điều kiện” …Loop: Trong khi “điều kiện” cịn đúng thì cịn thực
hiện các câu lệnh bên trong Do và Loop Do While ” điều kiện” [Các câu lệnh] [Các câu lệnh] Loop VD: Dim Num Num=0 Do While Num<10
Msgbox “Xin Chao lan: ”+str(Num),VBOKOnly,”DoLoop” Num=Num+1
Loop
Kq: Hộp thoại sẽ xuất hiện 10 lần cho đến khi nào giá trị cúa Num>=10 thì thơi.
+ Do Until “điều kiện”…Loop”: Thực hiện các câu lệnh bên trong cho
đến khi “điều kiện” đã thỏa thì dừng. Do Until ” điều kiện” [Các câu lệnh]
[Các câu lệnh] Loop
Chú ý: Ta cĩ thể nhận thấy sự khác biệt cơ bản giữa Do While và Do Until là ở chổ: trong khi “điều kiện” trong Do While là điều kiện để thực hiện chương trình thì “điều kiện “ trong Do Until lại là điều kiện để dừng chương trình.
+ Các Vịng lặp Do…Loop khác:
Do
[các câu lệnh] [Exit Do] [Các câu lệnh]
Loop [{While | Until} “điều kiện” ]
Cấu trúc này cũng giống như 2 cấu trúc trên tuy nhiên sự khác biệt là ở đây các câu lệnh thực hiện trước khi kiểm tra “điều kiện”, nghĩa là luơn cĩ ít nhất một lần các câu lệnh được thực hiện bất chấp điều kiện đúng hay sai.
Chú ý: Trong các vịng lặp Do…Loop, để thốt khỏi vịng lặp ta cị thể sử dụng câu lệnh
Exit Do.
+ Vịng lặp For…Next: Lặp lại một quá trình nào đĩ theo một số lần đã được
chỉ định.
For counter = start To end [Step step] [các câu lệnh]
Next [counter] VD: Dim i
For i=1 to 10 Step 1
MsgBox “Xin Chao lan:”+str(i),VBOKOnly,”ForNext” Next i
Kq: Hộp thoại sẽ xuất hiện 10 lần cho đến khi nào giá trị cúa i=10 thì thơi. Chú ý : cĩ thể sử dụng câu lệnh Exit For để thốt khỏi vịng lặp For…Next
+ Câu lệnh rẽ nhánh If…then…Else: Nếu điều kiện đúng thì thực hiện các câu
lệnh theo sau Then, nếu khơng sẽ thực hiện các câu lệnh theo sau Else. If “điều kiện” Then [các câu lệnh] [Else các câu lệnh khác] hoặc
If “điều kiện” Then [các câu lệnh] Else
[các câu lệnh khác] End if
VD: Dim x as Single ‘ khai báo biến x với kiểu là Single
x=Rnd(1)*10 ‘ cho x một giá trị ngẫu nhiên từ 0-10, hàm Rnd(1) trả ra một ‘giá trị
ngẫu nhiên từ 0 đến 1.
If X>5 then MsgBox “So Lon”,VBOKOnly,”IfThen” Else MsgBox “So
nho”,VBOKOnly,”IfThen”
+ Sử dụng Elseif: Đây là dạng điều kiện lồng trong điều kiện.
If điều kiện Then [các câu lệnh] …..
[các câu lệnh elseif] ... [Else
[các câu lệnh khác ]] End If
+ Cấu trúc Select case: Cũng là một cấu trúc rẽ nhánh sử dụng như là một kiểu
lựa chọn.
Select Case tên biến [Case giá trị-n [các câu lệnh-n]] ... [Case Else [các câu lệnh khác]] End Select + Ví dụ: Dim i i=Rnd(1)*3 Select case i
Case 0 : MsgBox “So 0”,VBOKOnly,”SelectCase” Case 1 : MsgBox “So 1”,VBOKOnly,”SelectCase” Case 2 : MsgBox “So 2”,VBOKOnly,”SelectCase” Case 3 : MsgBox “So 3”,VBOKOnly,”SelectCase” End Select
+ With Đối tượng: khi muốn truy xuất cùng lúc nhiều Properties của 1
đối tượng, người ta sử dụng With đối tượng:
+ Ví dụ: Ví dụ sau thay đổi cùng lúc các thuộc tính Border, Alignment, Font, BackColor…của một đối tượng TextBox tên là Text1.
With Text1 .BorderStyle=1 .Alignment=2 .BackColor=QBColor(12) .Font=”VNI-Times” End With
+ Bẫy lỗi (Error trapping): bẫy lỗi là việc đốn trước các lỗi cĩ
thể xẩy ra để hướng chương trình vào một lối khác, cĩ thể tránh được lỗi đĩ. On Error Goto Line: Nếu cĩ lỗi sẽ nhảy đến dịng Line ngay trong đoạn chương trình.
+ VD: On Error Goto Loi
Open "TESTFILE" For Output As #1 [các câu lệnh khác ]
Loi:
[các câu lệnh xử lí lỗi]
On Error Resume Next: Nếu cĩ lỗi thì bỏ qua, nhảy đến câu lệnh tiếp theo sau. Dùng câu lệnh này thường khơng giải quyết lỗi triệt để, dễ làm nảy sinh lỗi liên hồn rất khĩ xử lí.
Khi cĩ lỗi xảy ra, giá trị nhận dạng lỗi sẽ được lưu tự động vào biến “Err”, như vậy để nhận dạng lỗi và tìm ra cách giải quyết thích hợp chỉ cần tham khảo biến “Err”.