Lập trình cơ sở dữ liệu - CĐ Nghề Công Nghiệp Hà Nội - 5

+ MessageBoxIcon.Exclamation

+ MessageBoxIcon.Hand

+ MessageBoxIcon.Information

+ MessageBoxIcon.None

+ MessageBoxIcon.Question

+ MessageBoxIcon.Stop

+ MessageBoxIcon.Warning

- Default button: Nút bấm ngầm định nhận 1 trong 3 giá trị Button1, Button2, Button3

- Option: kiểu căn lề của hộp thoại

MessageBox.Show("Xóa bản ghi hiện thời?", "Thông báo", MessageBoxButtons.YesNo, MessageBoxIcon.Question)

Có thể bạn quan tâm!

Xem toàn bộ 201 trang tài liệu này.

- DisplayHelpButton (True,False) cho phép hiển thị hay không hiển thị nút Help. Ví dụ: Lệnh


Sẽ hiển thị hộp thông báo dưới đây

2 4 3 Các lệnh rẽ nhánh If điều kiện Then 39 Các câu lệnh End if a Lệnh If Mẫu 1 1

2.4.3 Các lệnh rẽ nhánh

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

End if

a. Lệnh If Mẫu 1:


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:

If <điều kiện> then Câu_lệnh

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.

Dim x%, y%

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

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

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

' Các câu lệnh

Next [biến đếm]

= <giá trị

đầu> To <giá trị cuối> [Step <bước>]

a. For .. Next Cú pháp:


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>

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)

For Each <phần tử> In <tập hợp> ' Các câu lệnh

[Exit For]

' Các câu lệnh Next [phần tử]

b. For Each … Next Cú pháp:


Với cú pháp này, chương trình sẽ duyệt qua từng phần tử trong tập hợp đang duyệt. Chú ý kiểu của phần tử phải khai báo tương thích với kiểu của tập hợp đang duyệt. Exit For dùng để thoát khỏi vòng lặp For

Ví dụ: Đoạn chương trình dưới đây dùng cấu trúc For .. Each .. Next để duyệt qua lần lượt các phần tử trong một tập hợp nhằm tìm phần tử có chứa chuỗi "Hello". Đoạn mã này giả thiết là tập hợp thisCollection đã được thiết lập và mỗi phần tử của nó thuộc kiểu String.

Dim found As Boolean = False

Dim thisCollection As New Collection

For Each thisObject As String In thisCollection If thisObject = "Hello" Then

found = True Exit For

End If

Next thisObject

c. Do … Loop Mẫu 1:

Do While <biểu thức logic> ' Các câu lệnh

Loop

Với cú pháp này, các câu lệnh đặt trong vùng Do While … Loop chỉ thực hiện bao lâu <biểu thức logic> có giá trị True. Sau mỗi lần thực hiện các câu lệnh trong vùng Do While...Loop, <biểu thức logic> sẽ được kiểm tra lại:

Nếu trị True, thực hiện lại vòng lặp

Nếu trị False, chấm dứt vòng lặp.

Cấu trúc này kiểm tra <biểu thức logic> trước khi thực hiện các lệnh nên sẽ không thực hiện lần nào nếu ngay lần đầu tiên <biểu thức logic> có trị False.

Mẫu 2:

Do

' Các câu lệnh

Loop While <biểu thức logic>

Tương tự Do While … Loop, các câu lệnh chỉ tiếp tục thực hiện khi <biểu thức logic> có giá trị True và sẽ kiểm tra lại <biểu thức logic> sau mỗi lần thực hiện.

Do kiểm tra sau khi thực hiện nên nếu ngay lần đầu <biểu thức logic> có trị False, các lệnh cũng được thực hiện một lần.

Mẫu 3:

Do Untile <biểu thức logic> ' Các câu lệnh

Loop

Mẫu 4:

Do

' Các câu lệnh

Loop Until <biểu thức logic>

Hai cú pháp này tương tự hai cú pháp trên (Do While … Loop, Do … Loop While), với một khác biệt là chỉ thực hiện hoặc tiếp tục thực hiện khi <biểu thức logic> là False.

Chúng ta có thể chấm dứt giữa chừng vòng lặp với lệnh Exit Do

d. While … End While

Cú pháp

While <biểu thức logic> ' Các câu lệnh

[ Exit While ]

' Các câu lệnh End While

Cách sử dụng như Do While … Loop

Dim n%, m%, UCLN%

n = InputBox("Nhập số thứ nhất:") m = InputBox("Nhập số thứ hai") Do While m <> n

If m > n Then m = m-n Else n = n-m

Loop UCLN = m

msgBox("USCLN= " & UCLN)

Ví dụ 2-6: Tìm ước số chung lớn nhất của 2 số m và n Cách 1: - Dùng Do .. While


Cách 2: - Dùng Do ..Until

Do Until m = n

If m > n Then m = m-n Else n = n-m

Loop

Cách 3: - Dùng While .. End While

While m <> n

If m > n Then m = m - n Else n = n - m End While


2.5 Dữ liệu có cấu trúc

2.5.1 Enum

Kiểu Enum là sự liên kết một tập hợp các trị hằng với các tên gợi nhớ. Các trị này mặc nhiên có kiểu Integer và chỉ có thể là kiểu Byte, Short, Long hoặc Integer. Kiểu Enum chỉ được tạo trong các Class hoặc Module.

Cú pháp:

[Phạm vi] [ Shadows ] Enum <tên> [ As <Kiểu DL>]

<tên thành phần thứ nhất> [= trị hằng 1]

<tên thành phần thứ hai> [= trị hằng 2]

...

End Enum

Trong đó phạm vi được xác định bởi một trong các từ khóa [Public | Protected | Friend | Protected Friend | Private]

Ví dụ:

Public Enum DoTuoi as Integer Nhidong = 0

Thieunien = 1

Thanhnien = 2

Trungnien = 3 End Enum

Khi không chỉ ra trị hằng, VB.NET sẽ gán trị cho thành phần đầu tiên là 0 và tăng dần cho các thành phần kế tiếp:

Ví dụ:

Public Enum DoTuoi as Integer

Nhidong ' mặc nhiên có trị

Thieunien ' mặc nhiên có trị Thanhnien ' mặc nhiên có trị Trungnien ' mặc nhiên có trị

End Enum

0

1

2

3

Nếu chỉ gán trị hằng cho thành phần đầu tiên, các thành phần kế tiếp sẽ nhận giá trị tăng dần:

Public Enum DoTuoi as Integer Nhidong = 100

Thieunien ' mặc nhiên có trị 101 Thanhnien ' mặc nhiên có trị 102 Trungnien ' mặc nhiên có trị 103

End Enum

Sau khi khai báo kiểu Enum, chúng ta có thể khai báo biến kiểu Enum cũng như sử dụng các thành phần của kiểu này thay cho các trị hằng.

2 5 2 Mảng Mảng là tập hợp các biến có cùng kiểu dữ liệu cùng tên nhưng có 2

2.5.2 Mảng

Mảng là tập hợp các biến có cùng kiểu dữ liệu, cùng tên nhưng có chỉ số khác nhau. Trong VB.Net, mảng có chỉ số bắt đầu là 0 và luôn luôn là mảng động. Chúng ta có các cách khai báo mảng như sau.

- Khai báo không khởi tạo kích thước và giá trị

Dim a() as Integer

..... Xem trang tiếp theo?
⇦ Trang trước - Trang tiếp theo ⇨

Ngày đăng: 27/12/2023