Vòng lặp VBScript: Do While, Do Until, While, For Each (Ví dụ)
Tại sao vòng lặp được sử dụng trong VBScript?
Vòng lặp được sử dụng để thực thi lặp đi lặp lại cùng một khối mã. Có một số câu lệnh lặp VBScript. Một số câu lệnh lặp VBScript là Do While, Do Until, For…..Next, v.v. Vì vậy, bạn sẽ quyết định sử dụng câu lệnh lặp nào cho nhu cầu của mình như thế nào?
Trong khi thực hiện vòng lặp, bạn có thể biết hoặc không biết số lần bạn muốn thực hiện một tập lệnh. Ví dụ: bạn muốn tính tổng của hai số mười lần. Trong trường hợp này, bạn đã biết mình muốn lặp lại một khối mã 10 lần. Giả sử bạn muốn tính tổng của hai số cho đến khi một biến cụ thể trở thành giá trị đúng. Ở đây, bạn không biết vòng lặp sẽ được thực hiện bao nhiêu lần. Vì vậy, tùy vào việc bạn biết hay không biết số lần thực thi mà bạn có thể sử dụng các loại câu lệnh lặp khác nhau.
For…Câu lệnh lặp tiếp theo được sử dụng nếu bạn muốn lặp lại một khối mã với số lần hữu hạn, nếu bạn biết số lần nếu bạn muốn lặp lại khối mã.
Câu lệnh lặp Do While và Do Until được sử dụng khi bạn muốn lặp lại một khối mã cho đến khi một điều kiện trở thành đúng hoặc sai, đó là khi bạn không biết số lần bạn muốn thực thi khối mã đó.
Chúng ta hãy xem xét từng câu lệnh lặp này.
VBScript Thực hiện vòng lặp while
Nếu bạn không biết số lần cần thực thi một khối mã thì bạn sẽ sử dụng vòng lặp Do While. Ví dụ: bạn muốn xuất thông báo “Chào mừng” trong khi giá trị của biến x nhỏ hơn 5. Trong trường hợp đó, vòng lặp Do While sẽ được sử dụng.
<script type="text/vbscript"> Dim x x=1 Do While x<5 document.write("Welcome.") x=x+1 Loop </script>
Nếu bạn thử thực thi mã, bạn sẽ nhận được kết quả như thế này:
Khối này được thực thi bốn lần (khi x=1,2,3 và 4) và vòng lặp kết thúc khi giá trị của x trở thành 5. Nếu bạn quên câu lệnh x=x+1 thì vòng lặp của bạn sẽ trở thành một vòng lặp không bao giờ kết thúc một. Loại vòng lặp này được gọi là vòng lặp vô hạn. Các vòng lặp vô hạn thậm chí có thể làm hỏng hệ thống của bạn. Vì vậy, trong khi sử dụng các câu lệnh lặp Do While, bạn nên đảm bảo rằng có một số mã sẽ làm cho điều kiện lặp đúng ở điểm này hay điểm khác.
Nếu bạn gán giá trị 7 cho biến x lúc đầu thì khối mã sẽ không được thực thi dù chỉ một lần. Giả sử bạn muốn thực thi khối mã ít nhất một lần bất kể điều kiện nào thì bạn có thể sử dụng vòng lặp Do While. Thay đổi mã như thế này:
Ví dụ VBScript:
<script type="text/vbscript"> Dim x x=7 Do document.write("Welcome.") x=x+1 Loop While x<5 </script>
Nếu bạn thực thi mã này, bạn sẽ nhận được thông báo “Chào mừng” chỉ một lần. Ở đây điều kiện chỉ được kiểm tra sau khi thực hiện vòng lặp một lần.
VBScript Thực hiện cho đến vòng lặp
Vòng lặp 'Do Until' cũng được sử dụng khi bạn không biết mình cần bao nhiêu thời gian để thực thi một khối mã. Khối mã đầu tiên trong vòng lặp Do Until (Do While x<5) tương đương với khối mã được đưa ra bên dưới.
<script type="text/vbscript"> Dim x x=1 Do Until x=5 document.write("Welcome.") x=x+1 Loop </script>
Điều này sẽ cung cấp cho bạn kết quả đầu ra giống như khối mã đầu tiên trong vòng lặp Do While. Bạn sẽ thấy thông báo Chào mừng bốn lần. Tương tự như Do…..Loop While, chúng ta cũng phải Do…Loop Until.
Nếu bạn muốn thoát khỏi vòng lặp Do While hoặc Do Until ở giữa thì bạn có thể sử dụng câu lệnh Thoát Do. Giả sử bạn muốn thoát khỏi khối khi giá trị của x trở thành 3 trong chương trình trên thì bạn cần viết mã như sau:
<script type="text/vbscript"> Dim x x=1 Do Until x=5 If x=3 Then Exit Do document.write("Welcome.") x=x+1 Loop </script>
Nếu bạn thực thi mã, đầu ra của bạn sẽ trông như thế này:
Ở đây vòng lặp được thoát khi giá trị của x trở thành 3.
Vòng lặp while của VBScript
Vòng lặp While…Wend tương tự như vòng lặp Do While nhưng không được sử dụng phổ biến. Vì vòng lặp Do While có cấu trúc chặt chẽ hơn vòng lặp While…..Wend nên các lập trình viên thường sử dụng các câu lệnh Do While.
<script type="text/vbscript"> Dim x x = 1 While x < 5 document.write("Welcome.") x=x+1 Wend </script>
Đầu ra sẽ là
Vòng lặp For-Next của VBScript
Vòng lặp For-Next có thể được sử dụng để thực thi một khối mã trong một số lần cụ thể. “Vòng lặp VBScript For” chỉ định biến đếm cũng như giá trị bắt đầu và kết thúc của nó. Câu lệnh Next tăng biến đếm lên một.
For i = 1 To 5 document.write("The number is " & i & " ") Next
Nếu bạn thực thi mã, bạn sẽ nhận được kết quả như thế này:
Vòng lặp cho bước tiếp theo của VBScript
Theo mặc định, biến đếm được tăng thêm một. Nếu bạn muốn tăng hoặc giảm biến đếm theo giá trị bạn chỉ định, thì bạn có thể sử dụng vòng lặp For….Step….Next. Giả sử trong đoạn mã trên, bạn muốn tăng bộ đếm lên 2, sau đó sửa đổi mã của mình như thế này:
For i = 1 To 5 Step 2 document.write("The number is " & i & "<br />") Next </script>
Đầu ra của mã này sẽ là:
Nếu bạn muốn thoát khỏi vòng lặp For Next hoặc For Step Next ở giữa thì bạn có thể sử dụng Exit cho câu lệnh. Giả sử bạn muốn thoát khỏi khối khi giá trị của i trở thành 3 trong chương trình trên thì bạn cần viết mã như sau:
<script type="text/vbscript"> For i = 1 To 5 Step 2 If i=3 Then Exit For document.write("The number is " & i & "<br />") Next </script>
Đầu ra sẽ là:
Vòng lặp cho mỗi lần tiếp theo của VBScript
Nếu bạn muốn lặp lại một khối mã cho từng mục trong bộ sưu tập hoặc cho từng phần tử của mảng VBS, thì bạn cần sử dụng vòng lặp For…Each…Next.
<script type="text/vbscript"> Dim students(4) students(0)="John" students(1)="Hanah" students(2)="Sarah" students(3)="Kevin" students(4)="Emma" For Each x In students document.write(x & "<br />") Next </script>
Đầu ra của mã được chỉ định ở trên sẽ là
Ví dụ về mã
<html> <head> <script type="text/vbscript"> Dim name, length name = InputBox("Enter your name") length = Len(name)’Gives length of the input string For i = 1 To length txt = Mid(name,i,1)'Returns a specified number of characters from a string, the first parameter is the string, second parameter is the starting position and third parameter is the number of characters to return If txt="a" or txt="A" or txt="e" or txt="E" or txt="i" or txt="I" or txt="o" or txt="O" or txt="u" or txt="U" Then counter = counter+1 End If Next document.write("Hi " & name & "!!!Your name contains " & counter & " vowels.") </script> </head> <body> </body> </html>
Lưu tệp dưới dạng loop.html ở vị trí bạn muốn. Bây giờ hãy mở tệp trong Internet Explorer và bạn sẽ thấy một hộp yêu cầu bạn nhập tên của mình. Nhập tên, chẳng hạn như Aaron, như thế này:
Nhấp vào OK và đầu ra của bạn sẽ trông như thế này:
Tổng kết
- Các câu lệnh lặp được sử dụng để thực thi lặp đi lặp lại cùng một khối mã.
- Bạn sẽ sử dụng các vòng lặp Do-while, Do-Until và While-Wend khi bạn không biết trước khối đó sẽ được thực thi bao nhiêu lần.
- Bạn sẽ sử dụng các vòng lặp For-Next, For-Next-Step và For-Each-Next nếu bạn đã biết số lần bạn cần thực thi khối mã.