Cấu trúc lặp này sẽ hoạt động dựa trên việc kiểm tra biến $var, nên ta cần tạo biến này trước khi cấu trúc được thực thi. Và mình sẽ bỏ qua việc kiểm tra xem Người Dùng có bấm Cancel hay không để cho nó đơn giản, như thế việc bấm Cancel tương đương với việc nhập Chuỗi hoặc 0.
| Dim $var=0 ;Khởi tạo biến $var để vòng lặp được thực thi While $var=0 ;Kiểm tra giá trị của $var Switch $var ;Kiểm tra biến $var |
Cấu trúc lặp sẽ hoạt động cho đến khi nào biến $var khác 0 tức là khi $var=0 nó sẽ lặp mãi, việc kiểm tra này tương tự như việc kiểm tra của If ở bài trước, khi $var có giá trị là chuỗi vẫn tương đương với $var=0.
Do…Until:
| Do ___$var=InputBox(“Nhập Số”,”Hãy nhập một số gì đó, trừ số 0 và Chuỗi”,7,” M7″) ___If $var=0 Then MsgBox(0,”Khoanh Vùng”,”Bạn đã nhập Chuỗi hoặc số 0″) Until $var<>0 ;Thay đổi Phương Thức kiểm tra Switch $var ;Kiểm tra biến $var |
Không như While…WEnd, Do…Until sẽ thực hiện các câu lệnh trong vòng lặp của mình trước rồi mới kiểm tra điều kiện lặp, bằng chứng là tụi mình không cần khởi tạo biến $var ở ngoài mà vòng lặp vẫn kiểm tra được.
Các bạn mới làm quen với lập trình cần chú ý cách mà 2 vòng lặp này kiểm tra điều kiện, đối với While…WEnd thì $var bằng 0 còn với Do…Until thì $var phải khác 0
Mở Rộng While…WEnd và Do…Until
Các vòng lặp thường được sử dụng rất nhiều trong thực tế, một trong số đó là các vòng lặp kiểm tra mật khẩu… điều mình muốn nói ở đây là không phải vòng lặp nào cũng chạy mãi nếu Người Dùng cứ nhập sai. Đôi khi Người Dùng chủ được phép nhập 1 số lần nhất định nào đó rồi thôi, lúc ấy vòng lặp sẽ ngưng và tự thoát ra dù điều kiện vẫn chưa thõa.
While…WEnd và Do…Until hoàn toàn có thể đáp ứng được vấn đề mà mình đặt ra ở trên bằng cách dùng cấu trúc If để kiểm tra 1 biến đếm, rồi ép cho điều kiện thoát vòng lặp được thõa mãn.
| Dim $var=0 ;Khởi tạo biến $var để vòng lặp được thực thi Dim $count=0 ;Khởi tạo biến đếm While $var=0 ;Kiểm tra giá trị của $var |
Nếu hiểu theo một nghĩa khác thì việc kiểm tra biến đếm bằng cấu trúc If thật chất là một điều kiện thoát thứ 2 của vòng lặp, như thế với sự kết hợp các cấu trúc Rẽ Nhánh (không riêng gì If) ta sẽ có nhiều đều kiện thể thoát vòng lặp. Ví dụ của tụi mình sẽ được thay đổi 1 chút để phù hợp với mô tả…
| Do ___$var=InputBox(“Nhập Số”,”Hãy nhập một số gì đó, trừ số 0 và Chuỗi”,7,” M7″) ___If $var=0 Then MsgBox(0,”Khoanh Vùng”,”Bạn đã nhập Chuỗi hoặc số 0″) ___Switch $var ;Kiểm tra biến $var |
Trong ví dụ này điều kiện thoát của Do…Until chỉ là False, như thế vòng lặp sẽ hoạt động mãi và điều kiện để thoát là những trường hợp của Cấu Trúc Switch
Không có nhận xét nào:
Đăng nhận xét