Chương IV. CẤU TRÚC ĐIỀU KHIỂN
B. NỘI DUNG 1. Cấu trúc chọn
a. Cấu trúc lựa chọn IF
Cấu trúc IF do Visual Basic hỗ trợ gồm 2 dạng chính sau đây:
Dạng:
IF <điều kiện> THEN
<Các lệnh thực hiện khi điều kiện thoả mãn>
END IF
Hay là:
IF <điều kiện> THEN
<Các lệnh thực hiện khi điều kiện thỏa mãn>
ELSE
<Các lệnh thực hiện khi điều kiện không thỏa mãn>
END IF
Ý nghĩa: Là một cấu trúc điều kiện, thực hiện công việc nào đó nếu điều kiện đề ra là đúng hoặc ngược lại.
Với cú pháp thứ nhất của IF sẽ kiểm tra xem giá trị của điều kiện là đúng hay sai.
Nếu đúng thì chương trình sẽ thực hiện các lệnh được khai báo. Cú pháp này không quan tâm trường hợp điều kiện có giá trị sai.
Khác với cú pháp thứ nhất, dạng IF trong cú pháp thứ hai sẽ thực hiện các lệnh giữa Elsse và End If khi điều kiện có giá trị sai.
Trong đó: Điều kiện có thể là các phép so sánh chuỗi hoặc số, hay các phép toán Logic khác.
Ví dụ 1: Giải phương trình bậc 1 (giao diện như sau)
- Nút giải dùng để kiểm tra tính hợp lệ của dữ liệu và in kết quả vào ô textbox nghiệm.
Private Sub cmdgiai_Click()
Dim a As Single, b As Single, kq As Single If(txta = “” Or txtb = “”) Then
MsgBox ‘’Bạn phải nhập đủ các hệ số’’
Else
a = Val(txta) b = Val(txtb) If a = 0 Then
MsgBox ‘’Hệ số a phải khác 0’’
Txta.SetFocus Else
Kq = -a / b
Txtkq = Format (kq, “0.0”) End If
End If End Sub
- Nút tiếp sẽ xóa tất cả nội dung của các hộp textbox. Sau đó đặt con trỏ vào hộp textbox hệ số a.
Private Sub cmdtiep_Click() Txta= “ ”
Txtb= “ ”
Txtkq= “ ” Txta.SetFocus End Sub
- Nút thoát dùng để thoát khỏi chương trình.
Private Sub cmdThoat_Click() End
End Sub
b. Cấu trúc SELECT CASE Cú pháp :
SELECT CASE <Biến hay biểu thức điều kiện>
CASE <giá trị1>
<Câu lệnh 1>
...
CASE <giá trịn>
<Câu lệnh n>
[CASE ELSE
<Câu lệnh Else>]
END SELECT
Ý nghĩa: Là một cấu trúc lựa chọn theo một biến hay một điều kiện nào đó. Cấu trúc này thường sử dụng trong trường hợp cần xét nhiều điều kiện chọn lựa xảy ra trên một biến nào đó.
Trong đó:
- Biến cũng có thể là một biểu thức.
- Giá trị có thể dùng các phép so sánh. Nếu giá trị là một dãy liên tục, có thể viết gọn lại theo cú pháp: Case <giá trị 1> To <giá trị n>
Ví dụ: Chương trình tính số ngày có trong tháng của một năm.
‘Code nút lệnh Kết quả Private Sub Cmdkq_Click() Dim Thang As integer Thang = val(txtthang.text) Select Case thang
Case 2
TxtThongbao = ‘’Tháng 2 có 28 ngày’’
Case 4, 6, 9, 11
TxtThongbao = ‘’Tháng này có 30 ngày’’
Case 1, 3, 5, 7, 8, 10, 12
TxtThongbao = ‘’Tháng này có 31 ngày’’
Case Else
TxtThongbao = ‘’Không có tháng này’’
End Select End Sub 2. Cấu trúc lặp.
a. Lặp với số lần lặp biết trước: Cấu trúc FOR . . NEXT Cú pháp:
FOR <Biến> =< Giá trị đầu> TO <Giá trị cuối> [STEP <bước lặp>]
<Các lệnh>
[EXIT FOR]
NEXT <Biến>
Ý nghĩa: là cấu trúc lặp với số bước lặp là cố định. Cấu trúc này thường sử dụng khi ta biết trước số bước lặp. Ơ cấu trúc này câu lệnh được thực hiện từ đầu cho đến khi hết số bước lặp. Đây là cấu trúc lặp hay dùng nhất trong Visual Basic.
Trong đó:
- Biến: Biến đếm kiểu số nguyên.
- STEP: là bước lặp sau mỗi lần lặp. Nếu giá trị Step này không có, mặc định bước lặp này là 1.
- [EXIT FOR]: Nếu có thì sẽ cho dừng ngay quá trình lặp của vòng lặp FOR.
Ví dụ 1: Tính tổng các số từ 1 đến n
Private Sub cmdthoat_Click() End
End Sub
Private Sub cmdtiep_Click() txtn = “”
txtkq = “”
txtn.SetFocus End Sub
Private Sub Cmdtinh_Click() Dim i As Integer
Dim n As Integer Dim tong As Integer n = Val(txtn.Text) For i = 1 To n
Tong = tong + i Txtkq.Text = tong Next i
End Sub
Ví dụ 2: Tính tổng các số chẵn từ 2 đến n Dim Tong As integer
Dim i As integer For i = 2 To 10 Step 2
Tong = Tong + I Next I
TxtThongbao = ‘’Tổng các số chẵn từ 1 đến 10 là’’ & Tong
Ví dụ 3: Tính tổng các số lẻ từ 1 đến 9 với điều kiện nếu Tong > 12 thì thoát khỏi vòng lặp
Dim Tong As integer Dim i As integer For i = 1 To 9 Step 2
Tong = Tong + i If Tong > 12 Then
Exit For End If
Next i
TxtThongbao = ‘’Tổng các số lẻ từ 1 đến 9 là ‘’ & Tong
Chú ý: Ta không cần gán biến Tong = 0, vì trong Visual Basic các biến số thì có giá trị mặc nhiên ban đầu bằng 0.
b. Lặp với số lần lặp không biết trước
Kiểm tra điều kiện trước khi lặp: Cấu trúc DO WHILE . . LOOP Cú pháp:
DO WHILE <Điều kiện>
<Khối lệnh>
[EXIT DO]
LOOP
Ý nghĩa: Đây là cấu trúc lặp kiểm tra điều kiện trước, vòng lặp tiếp tục khi điều kiện lặp còn đúng.
Trong đó:
- Điều kiện có thể là kiểu số hay kiểu chuỗi
- EXIT DO: Nếu có thì sẽ cho dừng ngay quá trinh lặp của vòng lặp DO.
Ví dụ 1: Tính tổng các số từ 1 đến n
Dim i As Integer Dim n As Integer Dim tong As Integer n = Val(txtn.Text) i = 1
Tong = 0
Do While i <= n Tong = tong + i i = i + 1
Loop
Txtkq.Text = tong End Sub
Ví dụ 2: Tính tổng các số từ 1 đến 5 với điều kiện nếu Tong > 10 thì thoát khỏi vòng lặp.
Dim i As integer Dim Tong As integer i = 1
Tong = 0 Do While i < 6
Tong = tong + i i = i + 1
If Tong > 10 Then Exit Do End if
Loop
TxtThongbao = ‘’Tổng từ 1 đến 5 với điều kiện Tong > 10 là ‘’ & Tong
Nếu điều kiện còn đúng thì thực hiện : Cấu trúc DO . . LOOP UNTIL Cú pháp:
DO
<Khối lệnh>
LOOP UNTIL <điều kiện>
Ý nghĩa: Đây là cấu trúc lặp nếu khi điều kiện lặp đúng thì thoát. Như vậy với cấu trúc này, vòng lặp thực hiện ít nhất 1 lần.
Ví dụ:
Dim Tong As integer Dim i As integer Do
Tong = Tong + i i = i + 1
Loop Until i = 6
TxtThongbao = ‘’Tổng từ 1 đến 5 là ‘’ & Tong
Chương V.