Hư
ớng dẫn lập tr
ình VB.
NET Chương 6: S
ử dụng các phát biểu cấu trúc ra quyết định
Biên so
ạn: Phạm Đức Lập
- 1 - Add: cnt-44-dh, VIMARU
Chương 6:
Sử dụng các phát biểu cấu trúc ra quyết định
oOo
N
ội dung thảo luận:
- Vi
ết các biểu thức điều kiện
- S
ử dụng phát biểu
If…Then r
ẽ nhánh chương trình dựa vào một điều kiện
- Ư
ớc lượng tắt trong phát biểu
If…Then
- S
ử dụng phát
bi
ểu
Select…Case đ
ể chọn quyết định trong số nhiều điều kiện
- Phát hi
ện và quản lý sự kiện chuột
1. L
t
ại
Method Name.
Bây gi
ờ chúng ta sẽ tìm hiểu về cấu trúc rẽ nhánh của phát biểu chương trình để thực hiện
các s
ự kiện phát sinh.
2. S
ử dụng biểu
th
ức
đi
ều kiện
M
ột
trong nh
ững cách xử lý mạnh mẽ nhất l
à dựa vào biểu thức điều kiện.
Nó quy
ết định
d
ựa tr
ên kết quả so sánh điều kiện. Ví dụ:
gia < 1000
bi
ểu thức này cho kết quả
True n
ếu biến gia < 1000 và
False n
ếu gia > 1000. Các toán tử
Nh
ỏ h
ơn hoặc bằng
>=
L
ớn h
ơn hoặc bằng
3. Phát bi
ểu cấu trúc rẽ nhánh
If…Then
D
ạng đ
ơn giản của một biểu thức rẽ nhánh:
If bieuthuc Then Thucthi
Trong đó bieuthuc là bi
ể
u th
ức đ
i
ều kiện và
Thucthi là phát bi
ểu được gọi khi
bieuthuc
nhận giá trị True. Ví dụ
If gia <1000 then Label1.Text = "Giá r
ẻ, mua lăm cái!"
3.1. Ki
ểm tra nhiều điều kiện trong cấu trúc
If…Then
Bi
ếu
bieuthuc2 đúng, th
ực
hi
ện
Kh
ối lệnh 2
…
Ví dụ sau cho thấy cách sử dụng phát biểu rẽ nhánh này để xem xét số thuế phải nộp trong
báo cáo tài chính:
Dim thunhap, thuenop As Double
thunhap=Cdbl(Textbox1.Text)
If thunhap <= 27050 Then
thuenop = thunhap * 0.15
ElseIf thunhap <= 65550 Then
thuenop = thunhap * 0.28
ElseIf thunhap <= 13675 Then
thuenop = 132 + thunhap * 0.19
Else
thuenop = 0
EndIf
Trong bài tập MyUserValidation dưới đây chúng ta sẽ dùng cấu trúc rẽ nhánh để kiểm tra
tính h
ợp lệ của ng
ười dùng đăng nhập.
Chương tr
ình có m
ột ô textbox cho phép người dùng nhập tên. Khi click vào nút
đăng
nh
rebox như h
ình. B
ạn tạo mới một giải pháp
và thêm vào m
ột dự án có c
ùng tên
MyUserValidation sau đó thi
ết kế giao diện nh
ư hình.
T
ừ dự án, R
-Click vào MyUserValidation ch
ọn Add | New Folder, g
õ tên
Images. B
ạn
copy hai
ảnh bất kỳ v
ào đây sau đó cho hai ảnh
này xu
ất hiện trong dự án bằng cách R
-
Click vào thư m
ục
Images ch
ọn Add | Existing Item… và chọn hai ảnh vừa copy vào.
Vi
ết mã:
T
ạo thủ tục
NET Chương 6: S
ử dụng các phát biểu cấu trúc ra quyết định
Biên so
ạn: Phạm Đức Lập
- 4 - Add: cnt-44-dh, VIMARU
Else
MsgBox("B
ạ
n không đư
ợc phép đăng nhập!"
)
End
End If
End If
Tìm hi
ểu mã:
Các mã t
ương đối đơn giản các bạn có thể tự tìm hiểu. Riêng việc lấy đường dẫn ảnh để
load vào picturebox1 thì b
ạn không cần gõ đường dẫn, thay vào đó bạn có
th
ể kéo ảnh từ
thư m
ục
Images bên c
ửa sổ dự án Solution Explorer vào dấu ngoặc kép sau phương thức
FromFile như trong m
ã.
Ch
ạy ch
FALSE
Not
N
ếu một biểu thức
False thì k
ết quả TRUE và ngược lại.
Xor
N
ếu có duy nhất một biểu thức
True, k
ết quả trả về là TRUE. Nếu cả
hai cùng True hay cùng False thì k
ết quả trả về là FALSE
Bây gi
ờ c
húng ta b
ổ sung thêm việc đăng nhập vào chương trình
MyUserValidation trên
đây m
ật khẩu người dùng.
Ta s
ử dụng các toán tử logic trên đây để kiểm tra tính hợp lệ của
ngư
ời dùng và pass nhập vào.
B
ạn mở lại dự án trên đây nếu đã đóng lại. Thiết kế lại giao
di
ện bằng cách bổ sung thêm
m
ột lable2 thuộc tính text là “Mật khẩu” và thêm một ô textbox thứ hai để nhập pass.
If UserName = "Kelley" And Pass = "kelley" Then
MsgBox("Chào b
ạn, Kelley!"
)
PictureBox1.Image = System.Drawing.Image.FromFile _
("D:\Data\Studying\VS.Net 05\Tung buoc lap trinh
vb.net\Tung buoc lap trinh vb.net\6_Chapter6\Bai
tap\MyUserValidation\MyUserValidation\Images\Kelley.jpg")
ElseIf UserName = "Sophie" And Pass = "sophie" Then
MsgBox("Chào b
ạn, Sophie!"
)
PictureBox1.Image = System.Drawing.Image.FromFile _
("D:\Data\Studying\VS.Net 05\Tung buoc lap trinh
vb.net\Tung buoc lap trinh vb.net\6_Chapter6\Bai
tap\MyUserValidation\MyUserValidation\Images\Sophie.jpg")
Else
MsgBox("B
ạn không được phép đăng nhập!"
)
End
End If
End If
Như b
ạn thấy, giờ đây biểu thức điều kiện đã được bổ sung thêm các toán tử logic
OR ở
phát bi
ểu If đầu tiên xem người dùng đã nhập đủ UserName và PassWord chưa. And ở
phát bi
ểu if thứ hai và thứ ba để kiểm tra đồng thời x
ột trong hai biểu thức mà False thì nó
ngưng không ư
ớc lượng tiếp tiếp các điều kiện
khác n
ữa mà chuyển sang mệnh đề ElseIf tiếp theo.
Toán tử OrElse tương tự. Nếu chỉ cần thấy một biểu thức TRUE thì phép ước lượng sẽ
d
ừng lại.
Tác d
ụng: tăng tốc độ
ước lượng biểu thức
tăng t
ốc ch
ương trình.
4. Phát bi
ểu cấu trúc lựa chọn
Select Case
C
ấu trúc n
ày ta đã biết trong các chương trước. Nó cho phép lựa chọn trường hợp và rẽ
nhánh hi
ệu quả, dễ hiểu h
ơn If.
Cú pháp:
Select case giatri
Case giatri1
Kh
ối lệnh 1
Case giatri2
Kh
Case 2
PictureBox6.Image = System.Drawing.Image.FromFile _
("D:\Data\Studying\VS.Net 05\Tung buoc lap trinh
vb.net\Tung buoc lap trinh vb.net\3_Chapter3\Bai
tap\InputControls\InputContorls\Images\PoundBag.bmp")
PictureBox6.Visible = True
End Select
S
ử dụng các toán tử so sánh trong cấu trúc
Select Case
B
ạn có thể sử dụng các toán tử so sánh để đưa vào một phạm vi các giá trị
l
ựa chọn trong
m
ệnh đề case.
Hư
ớng dẫn lập tr
ình VB.
NET Chương 6: S
ử dụng các phát biểu cấu trúc ra quyết định
Biên so
ạn: Phạm Đức Lập
- 7 - Add: cnt-44-dh, VIMARU
Các toán t
ử so sánh như <, >, =, <>, >=, <=. Để sử dụng toán tử so sánh, bạn cần thêm vào
t
ừ khóa
Is ho
ặc
ờ chúng ta
s
ẽ tìm hiểu kỹ hơn về cấu trúc này thông qua ví dụ
MyCaseGreeting.
Tìm hi
ểu chương trình:
Giao di
ện chương trình:
Chương tr
ình bao gồm một listbox liệt kê danh sách 4 nước. Khi người dùng click vào một
nư
ớc nào đó thì tên nước hiện trên một nhãn và thôn
g tin chi ti
ết hiện trên một nhãn khác.
Thi
ết kế giao diện:
B
ạn tạo một giải pháp mới và add một dự án cùng tên
MyCaseGreeting và thi
ết kế giao
di
ện như trên.
Đặt tên đối tượng: trong các ví dụ trước chúng ta để các đối tượng với các tên mặc định vì
đó là các chương tr
ình
đơn giản. Còn trong một dự án phức tạp, các đối tượng có số lượng
tương đ
ối lớn n
ên người lập trình cần đặt tên sao cho dễ nhớ. Trong ví dụ này, ta đặt tên
như sau:
lstcountry.Items.Add("Italy")
- T
ạo thủ tục
lstcountry_SelectedIndexChanged đ
ể điền thông tin t
ên nước và
thông tin l
ời ch
ào tương ứng với ngôn ngữ các nước để chào người lập trình:
lblcountry.Text = lstcountry.Text
Select Case lstcountry.SelectedIndex
Case 0
lblinfo.Text = "Hello, Programmer!"
Case 1
lblinfo.Text = "Hallo, Programmierer!"
Case 2
lblinfo.Text = "Hola, Programador!"
Case 3
lblinfo.Text = "Ciao, Programmatore!"
End Select
Ch
ạy chương trình:
B
ạn chạy chương trình bằng phím F5 hay start và xem các tính năng của chương trình.
5. Thêm b
ộ quản lý sự kiện chuột vào chương trình
Bây gi
ờ chúng ta thử th
êm vào chương tr
ình bộ quản lý sự kiện chuột. Lúc này nếu người
Bây gi
ờ bạn chạy lại chương trình xem có gì khác biệt hay không.
6. T
ổng kết
Chúng ta l
ại tạo một bảng tổng kết những g
ì đã biết trong chương này.