Cấu trúc lựa chọn

Một phần của tài liệu Tự động hóa trong thiết kế cầu đường part 2 pps (Trang 25 - 28)

8. Các cấu trúc điều khiển 1 Cấu trúc điều kiện

8.2.Cấu trúc lựa chọn

Cấu trúc này sử dụng khi ta muốn thực hiện một số lệnh nào đấy tương ứng với từng giá trị của biểu thức kiểm tra.

Các từ khoá sử dụng trong cấu trúc này: Select Case, Case, Case Else, End Select. Cú pháp của cấu trúc lựa chọn:

Select Case <biểu_thức_kiểm_tra> [Case điều_kiện_1 [khối_lệnh_1]] ... [Case điều_kiện_n [khối_lệnh_n]] [Case Else [khối_lệnh_else]] End Select

Diễn giải tiến trình của cấu trúc lựa chọn như sau: Giá trị của <biểu_thức_kiểm_tra> sẽ được so sánh với các <điều_kiện_i> nếu giá trị của <biểu_thức_kiểm_tra> thoả mãn <điều_kiện_i> thì <khối_lệnh_i> tương ứng sẽ được thực hiện, sau đó chương trình sẽ thoát khỏi cấu trúc lựa chọn. Trong trường hợp giá trị của <biểu_thức_kiểm_tra> không thoả mãn tất cả các điều kiện thì <khối_lệnh_else> sẽđược thực hiện nếu có từ khoá Case Else, còn nếu không có từ khoá Case Else thì chương trình sẽ thoát khỏi khối lệnh lựa chọn này mà không thực hiện gì cả.

Ví dụ sử dụng ElseIf ở trên được viết lại với cấu trúc lựa chọn như sau: Select Case TheColorYouLike

Case vbRed

MsgBox "You 're a lucky person" Case vbGreen

47 MsgBox "You 're a hopeful person" MsgBox "You 're a hopeful person"

Case vbBlue

MsgBox "You 're a brave person" Case vbMagenta

MsgBox "You 're a sad person" Else

MsgBox "You 're an average person" End Select Có thể thấy rằng với cách viết sử dụng cấu trúc lựa chọn, đoạn chương trình trên dễđọc hơn nhiều so với dùng cấu trúc điều kiện và ElseIf. Sơđồ khối của cấu trúc lựa chọn có thểđược biểu diễn như sau: 8.3. Vòng lặp xác định 8.3.1.Vòng lp theo biến đếm Thực hiện lặp một khối lệnh theo một biến đếm với số lần lặp xác định, ví dụ như khi ta cần tính tổng của các số nằm giữa hai số nào đó.

Các từ khóa: For, to, Step, Next Cú pháp:

For <biến_đếm>=<Bắt_Đầu> To <Kết_Thúc> [Step <bước_nhảy>] [Khối_lệnh]

Next [<biến_đếm>]

Cấu trúc lặp này thực hiện theo trình tự sau: Ø

ØGán <Biến_đếm> bằng giá trị <Bắt_đầu> Ø

ØSo sánh <Biến_đếm> với giá trị <Kết_thúc>:

ƒ

ƒ Nếu nhỏ hơn hoặc bằng: thực hiện các lệnh bên trong [Khối_lệnh] và tựđộng cộng vào <Biến_đếm> một giá trị bằng <bước_nhảy> nếu có từ khóa Step, còn không thì cộng thêm 1 và quay lại bước so sánh <Biến_đếm> với giá trị <Kết_thúc>.

ƒ

48

Ví dụ sau tính tổng của các số từ 1 đến 10: Dim i As Integer

Dim Tong As Integer Tong = 0

For i = 1 To 10 Step 1 Tong = Tong + i Next

Debug.Print ("Tong = " & Tong) Kết quả như sau:

Ví dụ sau tính tổng của các số chẵn từ 0 đến 10: Dim i As Integer

Dim Tong As Integer Tong = 0

For i = 0 To 10 Step 2 Tong = Tong + i Next

Debug.Print ("Tong = " & Tong) Kết quả như sau:

CHÚ Ý Khi giá trị của <bước_nhảy> là âm (<0) thì cấu trúc lặp sẽ thực hiện trình tự đếm ngược, nghĩa là vai trò của giá trị <bắt_đầu> và <kết_thúc> đổi chỗ cho nhau.

Ví dụ tính tổng của các số chẵn từ 0 đến 10 sử dụng vòng lặp đếm ngược: Dim i As Integer

Dim Tong As Integer Tong = 0

For i = 10 To 0 Step -2 Tong = Tong + i Next

Debug.Print ("Tong = " & Tong) Kết quả như sau:

49

GỢI Ý Nếu như muốn thoát khỏi vòng lặp xác định FOR khi mà số lần lặp chưa đủ thì ta sử dụng từ khóa Exit For.

Ví dụ sau sẽ tính tổng của các số chẵn từ 0 đến 10, nhưng sẽ dừng vòng lặp FOR ngay khi tổng lớn hơn 20:

Dim i As Integer Dim Tong As Integer Tong = 0

For i = 10 To 0 Step -2 Tong = Tong + i

If Tong > 20 Then Exit For Next

Debug.Print ("Tong = " & Tong) Kết quả như sau: (10 + 8 + 6 = 24)

Một phần của tài liệu Tự động hóa trong thiết kế cầu đường part 2 pps (Trang 25 - 28)