Các lệnh lồng nhau

Một phần của tài liệu Giáo Trình Tin học cơ bản (Trang 106)

I E= T*R

Các lệnh lồng nhau

‰ Như ta đã thấy trong cú pháp của hầu hết các lệnh VB đều có chứa thành phần Statement, đây là 1 lệnh thực thi VB bất kỳ ⇒ ta gọi cú pháp định nghĩa lệnh VB là đệ qui ⇒tạo ra các lệnh VB lồng nhau. Ta gọi cấp ngoài cùng là cấp 1, các lệnh hiện diện trong cú pháp của lệnh cấp 1 được gọi là lệnh cấp 2, các lệnh hiện diện trong cú pháp của lệnh cấp 2 được gọi là lệnh cấp 3,... Để dễđọc, các lệnh cấp thứ i nên dóng hàng nhờ n ký tự Tab. Ví dụ : đoạn chương trình tính ma trận tổng của 2 ma trận Dim A(N,N) As Double, B(N,N) As Double

Dim C(N,N) As Double

For i = 1 to n ' duyệt theo hàng For j = 1 to n ' duyệt theo cột

C(i,j) = A(i,j) + B(i,j) Next j

Next i

Khoa Công nghệ Thông tin Trường ĐH Bách Khoa Tp.HCM Môn : Tin học Slide 212 Vn đề thoát đột ngt khi cp điu khin ‰ Như ta đã thấy trong cú pháp của hầu hết các lệnh VB đều có chứa thành phần [Statement]+. Theo trình tự thi hành thông thường, các lệnh bên trong này sẽđược thực thi tuần tự, hết lệnh này đến lệnh khác cho

đến lệnh cuối, lúc này thì việc thi hành lệnh cha mới có thể kết thúc. Tuy nhiên trong 1 vài trạng thái thi hành đặc biệt, ta muốn thoát ra khỏi lệnh cha đột ngột chứ không muốn thực thi hết các lệnh con trong danh sách. Để phục vụ yêu cầu này, VB cung cấp lệnh Exit với cú pháp sau

đây :

Exit [For |Do |Property |Sub |Function]

‰ Lưu ý VB cho phép dùng Exit để thoát khỏi trực tiếp ra nhiều cấp. VB không cung cấp lệnh Exit If và Exit While để thoát khỏi lệnh If và lệnh While ⇒ dùng lệnh Do ... Loop thay thế lệnh While và/hoặc lệnh Goto (được trình bày sau).

Chương 8 : Các lệnh thực thi VB

Khoa Công nghệ Thông tin Trường ĐH Bách Khoa Tp.HCM

Môn : Tin học Slide 213 ‰ Để thấy việc dùng các lệnh lồng nhau và yêu cầu cần thoát khỏi đột

ngột 1 cấp điều khiển nào đó, ta hãy xem thủ tục sau, nó cho phép in ra tất cả các font chữ mà có thể dùng để hiển thị lên màn hình lẫn in ra máy in.

Private Sub Form_Click()

Dim objSFont As Object, objPFont As Object ' duyệt từng font màn hình

For Each objSFont In Screen.Fonts() ' duyệt từng font máy in

For Each objPFont In Printer.Fonts() If objSFont = objPFont Then

Print objSfont End If Next objPFont Next objSFont End Sub Vn đề thoát đột ngt khi cp điu khin (tt) Chương 8 : Các lệnh thực thi VB

Khoa Công nghệ Thông tin Trường ĐH Bách Khoa Tp.HCM

Môn : Tin học Slide 214 ‰ Quan sát lệnh If ta thấy rằng điều kiện chỉđúng tối đa 1 lần trong vòng

lặp objPFont, do đó khi đã thỏa điều kiện rồi thì ta nên thoát khỏi vòng lặp này ngay (để thời gian chạy ít hơn ⇒hiệu quả hơn).

Private Sub Form_Click()

Dim objSFont As Object, objPFont As Object ' duyệt từng font màn hình

For Each objSFont In Screen.Fonts() ' duyệt từng font máy in

For Each objPFont In Printer.Fonts() If objSFont = objPFont Then

Print objSfont

Exit For 'thoát đột ngột khỏi vòng For trong cùng End If Next objPFont Next objSFont End Sub Vn đề thoát đột ngt khi cp điu khin (tt) Chương 8 : Các lệnh thực thi VB

Khoa Công nghệ Thông tin Trường ĐH Bách Khoa Tp.HCM

Môn : Tin học Slide 215 ‰ Cũng thí dụở slide trước, nhưng nếu ta chỉ muốn in tên font chữđầu

tiên được dùng bởi cả màn hình và máy in, thì ta phải dùng lệnh Exit Sub sau khi đã in tên font đầu tiên này. (adsbygoogle = window.adsbygoogle || []).push({});

Private Sub Form_Click()

Dim SFont As objObject, objPFont As Object ' duyệt từng font màn hình

For Each objSFont In Screen.Fonts() ' duyệt từng font máy in

For Each objPFont In Printer.Fonts() If objSFont = objPFont Then

Print objSfont

Exit Sub 'thoát đột ngột khỏi thủ tục End If Next objPFont Next objSFont End Sub Vn đề thoát khi cp điu khin đột ngt (tt) Chương 8 : Các lệnh thực thi VB

Khoa Công nghệ Thông tin Trường ĐH Bách Khoa Tp.HCM

Môn : Tin học Slide 216 ‰ Thủ tục là phương tiện phân chia code của module (class, form,

standard) ra nhiều đơn vị nhỏ hơn để dễ quản lý và sử dụng. Đây là vấn đề khá lớn và sẽđược trình bày chi tiết trong chương kế.

‰ Ởđây chúng ta giới thiệu 1 vài ý tưởng ban đầu về thủ tục đủ để giới thiệu lệnh gọi (sử dụng) chúng. Thủ tục là 1 danh sách các lệnh VB thực hiện 1 chức năng rõ ràng (và thường đơn giản), các lệnh này được họp thành 1 đơn vị và được gán cho 1 tên nhận dạng, tên này nên gợi ý được chức năng của thủ tục (thí dụ ta đặt danh sách các lệnh VB tính cos của góc x trong 1 đơn vị và đặt tên cho nó là Cos).

‰ Để thủ tục có độ sử dụng cao, khi định nghĩa nó người ta kết hợp 1 danh sách tham số hình thức với nó. Mỗi tham số hình thức miêu tả 1 dữ liệu mà thủ tục sẽ xử lý khi thủ tục được thi hành. Các tham số là phương tiện trao đổi dữ liệu giữa lệnh gọi và code của thủ tục. Thí dụ

ta kết hợp với thủ tục Cos 1 tham số là góc x, ta nói Cos (x) là thủ tục tính Cos của góc x.

Một phần của tài liệu Giáo Trình Tin học cơ bản (Trang 106)