Lệnh If Mẫu 1:

Một phần của tài liệu Giáo trình lập trình cơ sở dữ liệu (Trang 33 - 37)

Mẫu 1:

If <điều kiện> Then ' Các câu lệnh End if

Trong đó <điều kiện> có thể là biểu thức trả về giá trị True/False hoặc là một giá trị số. Giá trị số khác 0 tương ứng với True, ngược lại là False.

Sử dụng cú pháp này, người lập trình muốn khai báo với trình biên dịch rằng các câu lệnh trong vùng If … End If chỉ được thực hiện nếu như <điều kiện> là đúng. Nếu chỉ có một lệnh được thực hiện khi điều kiện đúng ta có thể viết lại mẫu 1 như sau:

33

Mẫu 2:

If <điều kiện> Then

' Các câu lệnh khi điều kiện đúng Else

' Các câu lệnh khi điều kiện sai End if

Nếu chỉ có một câu lệnh được thực hiện trong mỗi trường hợp khi điều kiện đúng hoặc sai ta có thể viết như sau:

If <điều kiện> Then Câu_lệnh1 Else Câu_lệnh2

Trong đó câu_lệnh1 là lệnh được thực hiện khi điều kiện đúng còn câu_lệnh 2 là lệnh được thực hiện khi điều kiện sai.

Ví dụ: Đoạn mã dưới đây: If x>0 then

Msgbox ("Số dương") Else

Msgbox ("Số âm") End if

Có thể được viết như sau:

If x>0 then Msgbox ("Số dương") Else Msgbox ("Số âm") Trong trường hợp nhiều điều kiện, chúng ta sử dụng mẫu 3 dưới đây:

Mẫu 3:

If <điều kiện 1> Then ...

ElseIf <điều kiện 2> Then ...

ElseIf <điều kiện n> Then ...

Else ... End If

Chú ý: Các mệnh đề If … Then … Else có thể lồng nhau.

Ví dụ 2-2: Đoạn chương trình dưới đây sử dụng hàm InputBox để nhập giá trị cho 2 số nguyên x và y sau đó dùng MsgBox để đưa ra thông báo về số lớn nhất và số nhỏ nhất.

34 x = InputBox("Nhập số thứ nhất")

y = InputBox("Nhập số thứ hai") If x > y Then

MsgBox("Số lớn nhất là " & x & Chr(13) & Chr(10) _ & "Số nhỏ nhất là" & y)

Else

MsgBox("Số lớn nhất là " & y & Chr(13) & Chr(10) _ & "Số nhỏ nhất là" & x)

End If

Trong ví dụ trên biểu thức Chr(13) & Chr(10) được dùng để tách chuỗi thông báo trong hộp thoại thành 2 dòng. Dấu _ dùng để xuống dòng khi chưa kết thúc câu lệnh.

b. Lệnh Case

Select Case <biểu thức> Case <danh sách 1> ' Các lệnh thực hiện trong nhánh 1 Case <danh sách 2> ' Các lệnh thực hiện trong nhánh 2 ... Case Else

' Các lệnh thực hiện khi không có nhánh nào ở trên được chọn End Select

Danh sách được đưa ra để làm điều kiện rẽ nhánh có thể rơi vào một trong các trường hợp sau:

- biểu thức

- biểu thức 1, biểu thức 2,... - biểu thức 1 TO biểu thức 2 - IS <phép toán so sánh> biểu thức

Ví dụ 2-3: Đoạn chương trình sau dùng InputBox để nhập vào giá trị của một tháng trong một năm và hiển thị số ngày của tháng đó.

Dim thang, nam, songay As Integer

thang = InputBox("Tháng") : nam = InputBox("Năm:") Select Case thang

Case 1, 3, 5, 7, 8, 10, 12 songay = 31

Case 4, 6, 9, 11 songay = 30

35 Case Else

If (nam Mod 400=0) Or (nam Mod 4=0 And nam Mod 100 <>0) _ Then songay = 29 Else songay = 28

End Select

MsgBox("Tháng " & thang & " năm " & nam & " có " & _ songay & " ngày")

Ví dụ 2-4: Nhập vào tuổi của một người và in ra thông báo Thiếu niên nếu tuổi nhỏ hơn 15; Thanh niên nếu tuổi từ 15 đến 25; Trung niên nếu tuổi từ 26 đến 45; Hoa niên nếu tuổi lớn hơn 26

Dim tuoi%

tuoi = InputBox("Tuổi:") Select Case tuoi

Case Is < 15 MsgBox("Thiếu niên") Case 15 To 25 MsgBox("Thanh niên") Case 26 To 45 MsgBox("Trung niên") Case Is > 46 MsgBox("Hoa niên") End Select 2.4.4 Câu lệnh lặp a. For .. Next Cú pháp:

For <biến đếm> = <giá trị đầu> To <giá trị cuối> [Step <bước>] ' Các câu lệnh

[Exit For] ' Các câu lệnh Next [biến đếm]

฀ Các câu lệnh trong vùng For … Next chỉ được thực hiện nếu <biến đếm> có giá trị trong đoạn [<giá trị đầu>, <giá trị cuối>]

฀ Sau mỗi lần thực hiện, <biến đếm> sẽ được tăng thêm <bước>. Nếu không chỉ định, <bước> có giá trị là 1.

฀ Nếu <bước> có trị > 0, cấu trúc chỉ thực hiện khi <giá trị đầu> <= <giá trị cuối>

฀ Nếu <bước> có trị < 0, cấu trúc chỉ thực hiện khi <giá trị đầu> >= <giá trị cuối>

36 ฀ Mệnh đề Exit For dùng để thoát ngang khỏi vòng lặp

Ví dụ 2-5: Tính số tiền nhận được sau N tháng gửi tiết kiệm biết số tiền đem gửi là S và lãi suất kép là H% một tháng.

Dim N%, i%

Dim H, S As Decimal

S = InputBox("Số tiền đem gửi:")

H = InputBox("Lãi suất hàng tháng: (%)") N = InputBox("Số tháng gửi:")

For i = 1 To N S += H * S / 100 Next

MsgBox("Số tiền nhận được là " & S)

Một phần của tài liệu Giáo trình lập trình cơ sở dữ liệu (Trang 33 - 37)

Tải bản đầy đủ (PDF)

(187 trang)