Vòng lặp xác định là vòng lặp mà số lần lặp lại của công việc đƣợc biết trƣớc. Trong Visual Basic vòng lặp xác định đƣợc thực hiện bởi câu lệnh For có cấu trúc nhƣ sau:
For <biến> = <biểu thức 1> To <biểu thức 2> [Step <biểu thức 3>] <công việc>
[Exit For] Next [<biến>]
Trong đó biểu thức 1 và biểu thức 2 là hai chỉ số đầu và cuối của biến, biểu thức 2 có thể có giá trị dƣơng hay âm. Step nhằm để tăng hay giảm biến sau mỗi vòng lặp. Nếu không xác định rõ thì Step sẽ có giá trị là 1.
Nếu sử dụng câu lệnh Exit For thì khi gặp câu lệnh này máy tính sẽ nhảy ra khỏi vòng lặp.
Ví dụ 1: Tính tổng các số từ 1 đến 10 Dim Sum As Integer, i As Integer Sum = 0
For i = 1 to 10
Sum = Sum + i Next i
Ví dụ 2: Tính tổng S=1+1/2+1/3+….+1/(n-1)+1/n Với n là số nguyên dƣơng Dim n as integer
Dim i as integer Dim S as Single
_46_ n=val(Inputbox(“Nhập giá trị cho n=”)) S=0 For =1 to n S=S+1/i Next i Print “Tong s=”,str(S) 4.13.3. Vòng lặp không xác định Vòng lặp While Vòng lặp UnTil Cú pháp 1:
Do While <điều kiện lặp> <công việc> [Exit Do] Loop Cú pháp 2: Do <công việc> [Exit Do]
Loop While <điều kiện lặp> Cú pháp 3:
While <điều kiện lặp> <công việc> Wend
Hoạt động: Vòng lặp While chỉ hoạt động khi điều kiện đúng còn thoát khi điều kiện sai.
Sơ đồ thuật toán cú pháp 1
Cú pháp 1:
Do UnTil <điều kiện lặp> <công việc> [Exit Do] Loop Cú pháp 2: Do <công việc> [Exit Do]
Loop Until <điều kiện lặp>
Hoạt động: Vòng lặp UnTilchỉ hoạt động khi điều kiện sai còn thoát khi điều kiện đúng.
Sơ đồ thuật toán cú pháp 1
Đkiện Đ Công việc S
Công việc
Đkiện Đ
_47_
Ví dụ1: Tính tổng các số từ 1 đến 10 „Dùng lệnh While
Dim Sum As Integer, i As Integer i=0 Sum=0 Do While i<10 Sum = Sum + i i = i + 1 Loop „Dùng lệnh Until
Dim Sum as Integer, i as Integer i=0 Sum = 0 Do Until i>10 Sum = Sum + i i = i+1 Loop
Ví dụ 2: Tìm ƣớc số chung lớn nhất của hai số nguyên dƣơng a,b Dim a as integer, b as integer
Dim UCLN as Integer Do
a= val(Inputbox(“Nhập giá trị cho a=”)) b= val(Inputbox(“Nhập giá trị cho b=”)) Loop Until a>0 and b>0
Do while a<>b If a>b then a=a-b Else b=b-a end if
_48_ Loop
UCLN=a
Print “ƣớc số chung lớn nhất là:”,str(UCLN)