Bài giảng 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 - Phạm Đức Lập

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ập trình hướng sự kiện

Các chương trình chúng ta đã xây dựng bao gồm các đối tượng. Chúng ta tạo ra các đối

tượng và dặt chúng lên form. Khi người dùng tương tác, họ sẽ quyết định xem sự kiện nào

phát sinh trên đối tượng. Nói chung chương trình được tạo ra từ một tập các đối tượng

thông minh chờ và phát sinh sự kiện do người dùng tương tác. Đây được gọi là lập trình

hướng sự kiện – Event-drivent Programming.

Sự kiện có thể phát sinh do người dùng kích hoạt đối tượng hay có thể do hệ thống tự

quyết định (như khi có email, chương trình sẽ phát sinh yêu cầu chúng ta xử lý).

VS.NET hỗ trợ sẵn rất nhiều sự kiện cho các đối tượng. Bạn có thể tìm thấy các sự kiện

này trong ô thả xuống tại cửa sổ Code Editor khi chọn tên lớp ở Class Name và tên sự kiện

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 <>

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ử

so sánh có thể dùng trong biểu thức điều kiện:

pdf 9 trang yennguyen 1540
Bạn đang xem tài liệu "Bài giảng 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 - Phạm Đức Lập", để tải tài liệu gốc về máy hãy click vào nút Download ở trên

Tóm tắt nội dung tài liệu: Bài giảng 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 - Phạm Đức Lập

Bài giảng 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 - Phạm Đức Lập
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 IfThen 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 IfThen 
 - Sử dụng phát biểu SelectCase để 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ập trình hướng sự kiện 
Các chương trình chúng ta đã xây dựng bao gồm các đối tượng. Chúng ta tạo ra các đối 
tượng và dặt chúng lên form. Khi người dùng tương tác, họ sẽ quyết định xem sự kiện nào 
phát sinh trên đối tượng. Nói chung chương trình được tạo ra từ một tập các đối tượng 
thông minh chờ và phát sinh sự kiện do người dùng tương tác. Đây được gọi là lập trình 
hướng sự kiện – Event-drivent Programming. 
Sự kiện có thể phát sinh do người dùng kích hoạt đối tượng hay có thể do hệ thống tự 
quyết định (như khi có email, chương trình sẽ phát sinh yêu cầu chúng ta xử lý). 
VS.NET hỗ trợ sẵn rất nhiều sự kiện cho các đối tượng. Bạn có thể tìm thấy các sự kiện 
này trong ô thả xuống tại cửa sổ Code Editor khi chọn tên lớp ở Class Name và tên sự kiện 
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. Các toán tử 
so sánh có thể dùng trong biểu thức điều kiện: 
Toán tử so sánh Ý nghĩa 
= Bằng 
 Khác 
< Nhỏ hơn 
> Lớn hơn 
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 - 2 - Add: cnt-44-dh, VIMARU 
<= 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 IfThen 
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 IfThen 
Biểu thức IfThen còn có thể kiểm tra nhiều điều kiện một lúc và đưa ra nhiều quyết định 
khác nhau với việc kết hợp với các từ khóa như ElseIf, Else và EndIf: 
If bieuthuc1 then 
 Khối lệnh 1 
ElseIf bieuthuc2 
 Khối lệnh 2 
ElseIf bieuthuc3 
 Khối lệnh 3 
... 
Else 
 Khối lệnh thực thi nếu không có giá trị bieuthuc(n) nào True 
EndIF 
Trong phát biểu trên, nếu Bieuthuc1 đúng, thực hiện Khối lệnh 1; nế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ập thì chương trình sẽ kiểm tra xem có đúng hay không để đăng nhập. Mỗi người dùng 
có một ảnh khác nhau hiển thị trong một PictureBox. 
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 - 3 - Add: cnt-44-dh, VIMARU 
3.2. Chương trình MyUserValidation 
Bây giờ chúng ta sẽ xây dựng chương trình. 
Thiết kế giao diện: 
Giao diện chương trình như sau: 
Form gồm một Label, một textbox và một picturebox 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 Button1_Click và gõ đoạn mã sau: 
 Dim UserName As String 
 If TextBox1.Text = "" Then 
 MsgBox("Bạn phải nhập UserName") 
 Else 
 UserName = TextBox1.Text 
 If UserName = "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" 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") 
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 - 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ương trình: 
Các bạn chạy chương trình và lần lượt nhập vào các UserName là “Kelley”, “Sophie” và 
một tên nào đó để xem kết quả. 
3.3. Sử dụng các toán tử logic trong biểu thức điều kiện 
Bạn có thể kiểm tra đồng thời nhiều điều kiện trong cùng một mệnh đề If then hay elseif 
nhờ các toán tử logic. 
Toán tử Logic Ý nghĩa 
And TRUE nếu cả hai cùng True. 
Or Nếu chỉ cần một biểu thức True thì giá trị TRUE. Nếu cả hai False thì 
kết quả 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ờ chú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. Sửa 
thuộc tính UseSystemPassWordChar thành TRUE để giấu ký tự nhập vào. 
Viết lại mã chương trình: 
Bổ sung khai báo biến Pass như sau: 
 Dim UserName, Pass As String 
Và nhập lại mã như thế này: 
 If TextBox1.Text = "" Or TextBox2.Text = "" Then 
 MsgBox("Bạn phải nhập UserName, PassWord") 
 Else 
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 - 5 - Add: cnt-44-dh, VIMARU 
 UserName = TextBox1.Text 
 Pass = TextBox2.Text 
 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 xem UserName và PassWord nhập vào 
có hợp lệ hay không. 
Chạy lại chương trình: 
Bạn chạy lai chương trình và nhập các giá trị UserName trùng PassWord để xem. 
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 - 6 - Add: cnt-44-dh, VIMARU 
3.4. Ước lượng tắt sử dụng toán tử AndAlso và OrElse 
VB.NET cung cấp hai toán tử logic mới là AndAlso và OrElse cho phép ước lượng tắt. 
Giả sử phát biểu If có hai biểu thức điều kiện liên kết với nhau bằng toán tử AndAlso. Để 
phát biểu trong câu trúc được thực thi thì cả hai biểu thức điều kiện đều phải TRUE. Nếu 
mộ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ối lệnh 2 
 ... 
 Case giatrin 
 Khối lệnh n 
 Case Else 
 Khối lệnh thực thi nếu các khối lệnh trên sai 
End Select 
Bạn có thể xem ví dụ InputControls trong chương 3. Đây là mã chương trình: 
 Select Case ComboBox1.SelectedIndex 
 Case 0 
 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\Dollar.bmp") 
 PictureBox6.Visible = True 
 Case 1 
 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\Check.bmp") 
 PictureBox6.Visible = True 
 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 To. Ví dụ: 
Select Case tuoi 
 Case Is < 13 
 MsgBox("Cần học thêm nhiều") 
 Case 13 To 19 
 MsgBox("Lứa tuổi teen") 
 Case 21 
 MsgBox("Bạn có thể kết hôn") 
 Case > 100 
 MsgBox("Đẹp lão!") 
 Case Else 
 MsgBox("Mừng thọ") 
End Select 
Nếu bạn có ít hơn 3 phát biểu so sánh thì bạn nên dùng câu lệnh rẽ nhánh If  Then. 
Bây giờ 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ông 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: 
 - Lable1: Name – lbltittle, Text – “Internatinonal Welcome Program” 
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 - 8 - Add: cnt-44-dh, VIMARU 
 - Lable2: Name – lblchoose, Text – “Choose a country” 
 - Lable3: Name – lblcountry, Text – “” 
 - Lable4: Name – lblinfo, Text – “” 
 - ListBox1: name – lstcountry 
 - Button1: Name – btnquit, Text – “Quit” 
Các thuộc tính còn lại các bạn có thể tùy chọn. 
Viết mã: 
 - Thêm các mục chọn là 4 nước trong lstcountry: các bạn có thể thêm các mục này 
khi thiết kế hoặc khởi tạo chúng tại sự kiện Form1_Load như thế này: 
 lstcountry.Items.Add("England") 
 lstcountry.Items.Add("Germany") 
 lstcountry.Items.Add("Mexico") 
 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 
dùng click vào lstcountry nhưng nếu không click đúng vào một trong bốn mục thì chương 
trình lập tức hiện thông báo yêu cầu chọn một trong bốn mục đó. 
Để làm được điều này chúng ta tạo ra thủ tục lstcountry_MouseHover bằng cách sau: 
Mở form ở chế độ viết mã code editor, chọn lstcountry ở ô class name và sự kiện 
MouseHover ở ô Method name và gõ đoạn mã sau: 
 If lstcountry.SelectedIndex < 0 Or _ 
 lstcountry.SelectedIndex > 4 Then 
 lblcountry.Text = "" 
 lblinfo.Text = "Please click the country name!" 
 End If 
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 - 9 - Add: cnt-44-dh, VIMARU 
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. 

File đính kèm:

  • pdfbai_giang_huong_dan_lap_trinh_vb_net_chuong_6_su_dung_cac_ph.pdf