VBScript วนซ้ำ: ทำในขณะที่ ทำจนกระทั่ง ในขณะที่ สำหรับแต่ละ (ตัวอย่าง)
เหตุใดจึงใช้ Loops ใน VBScript
ลูปใช้เพื่อดำเนินการบล็อกโค้ดเดียวกันซ้ำแล้วซ้ำอีก มีคำสั่งวนซ้ำ VBScript จำนวนมาก คำสั่งวนซ้ำ VBScript บางส่วนได้แก่ Do While, Do Until, For…..Next และอื่นๆ แล้วคุณจะตัดสินใจได้อย่างไรว่าจะใช้คำสั่ง looping ใดให้ตรงกับความต้องการของคุณ?
ขณะดำเนินการลูป คุณอาจทราบหรือไม่ทราบจำนวนครั้งที่คุณต้องการดำเนินการชุดคำสั่ง ตัวอย่างเช่น คุณต้องการคำนวณผลรวมของตัวเลขสองตัวสิบครั้ง ในกรณีนี้ คุณทราบอยู่แล้วว่าคุณต้องการทำซ้ำบล็อกของโค้ด 10 ครั้ง สมมติว่า คุณต้องการคำนวณผลรวมของตัวเลขสองตัวจนกว่าตัวแปรตัวใดตัวหนึ่งจะกลายเป็นจริง ในกรณีนี้ คุณไม่ทราบว่าต้องดำเนินการลูปกี่ครั้ง ดังนั้น ขึ้นอยู่กับว่าคุณทราบหรือไม่ทราบจำนวนครั้งที่ดำเนินการ คุณสามารถใช้คำสั่งวนซ้ำประเภทต่างๆ ได้
สำหรับ...คำสั่งวนรอบถัดไปจะใช้ถ้าคุณต้องการทำซ้ำบล็อกของโค้ดในจำนวนจำกัด ซึ่งถ้าคุณทราบจำนวนครั้งถ้าคุณต้องการทำซ้ำบล็อกของโค้ด
คำสั่ง Do While และ Do Until looping ถูกใช้เมื่อคุณต้องการทำซ้ำบล็อกของโค้ดจนกว่าเงื่อนไขจะกลายเป็นจริงหรือเท็จ นั่นคือเมื่อคุณไม่ทราบจำนวนครั้งที่คุณต้องการดำเนินการบล็อกของโค้ด
ลองมาดูที่คำสั่งวนซ้ำเหล่านี้ทีละรายการ
VBScript ทำในขณะที่วนซ้ำ
หากคุณไม่ทราบจำนวนครั้งที่คุณต้องดำเนินการบล็อกโค้ด คุณจะต้องใช้ลูป Do While ตัวอย่างเช่น คุณต้องการแสดงข้อความ “ยินดีต้อนรับ” ในขณะที่ค่าของตัวแปร x น้อยกว่า 5 ในกรณีนี้ จะใช้ลูป Do While
<script type="text/vbscript"> Dim x x=1 Do While x<5 document.write("Welcome.") x=x+1 Loop </script>
หากคุณลองรันโค้ด คุณจะได้ผลลัพธ์ดังนี้:
บล็อกจะถูกดำเนินการสี่ครั้ง (เมื่อ x=1,2,3 และ 4) และการวนซ้ำจะสิ้นสุดเมื่อค่าของ x กลายเป็น 5 หากคุณลืมคำสั่ง x=x+1 การวนซ้ำของคุณจะกลายเป็นการวนซ้ำที่ไม่มีวันสิ้นสุด หนึ่ง. ลูปประเภทนี้เรียกว่า ลูปอนันต์- การวนซ้ำไม่สิ้นสุดอาจทำให้ระบบของคุณเสียหายได้ ดังนั้น ขณะใช้คำสั่ง Do While looping คุณควรตรวจสอบให้แน่ใจว่ามีโค้ดบางตัวที่จะทำให้เงื่อนไขการวนลูปเป็นจริง ณ จุดใดจุดหนึ่ง
หากคุณกำหนดค่า 7 ให้กับตัวแปร x ที่จุดเริ่มต้น บล็อกโค้ดจะไม่ถูกดำเนินการแม้แต่ครั้งเดียว สมมติว่าคุณต้องการรันบล็อกโค้ดอย่างน้อยหนึ่งครั้งโดยไม่คำนึงถึงเงื่อนไข จากนั้นคุณสามารถใช้ลูป Do While ได้ เปลี่ยนรหัสดังนี้:
ตัวอย่าง VBScript:
<script type="text/vbscript"> Dim x x=7 Do document.write("Welcome.") x=x+1 Loop While x<5 </script>
หากคุณรันโค้ดนี้ คุณจะได้รับข้อความ "ยินดีต้อนรับ" เพียงครั้งเดียว ในที่นี้เงื่อนไขจะถูกตรวจสอบหลังจากดำเนินการวนซ้ำเพียงครั้งเดียวเท่านั้น
VBScript ทำจนกระทั่งวนซ้ำ
ลูป 'Do Until' ยังใช้เมื่อคุณไม่ทราบจำนวนครั้งที่คุณต้องรันบล็อกโค้ด บล็อกแรกของโค้ดใน Do Until loop (Do While x<5) เทียบเท่ากับบล็อกโค้ดที่ระบุด้านล่าง
<script type="text/vbscript"> Dim x x=1 Do Until x=5 document.write("Welcome.") x=x+1 Loop </script>
สิ่งนี้จะให้ผลลัพธ์เดียวกันกับบล็อกแรกของโค้ดในลูป Do While คุณจะเห็นข้อความต้อนรับสี่ครั้ง คล้ายกับ Do …..Loop While เราก็ต้องทำ…Loop Until เช่นกัน
หากคุณต้องการออกจากลูป Do While หรือ Do Until ระหว่างนั้น คุณสามารถใช้คำสั่ง Exit Do ได้ สมมติว่าคุณต้องการออกจากบล็อกเมื่อค่าของ x กลายเป็น 3 ในโปรแกรมข้างต้น คุณจะต้องเขียนโค้ดดังนี้:
<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>
หากคุณรันโค้ด ผลลัพธ์ของคุณจะมีลักษณะดังนี้:
ที่นี่การวนซ้ำจะออกจากเมื่อค่า x กลายเป็น 3
VBScript ในขณะที่วนซ้ำ
While…Wend loop คล้ายกับ Do While loop แม้ว่าจะไม่ได้ใช้กันทั่วไปก็ตาม เนื่องจาก Do While มีโครงสร้างมากกว่า While…..Wend loop โปรแกรมเมอร์มักจะใช้คำสั่ง Do While
<script type="text/vbscript"> Dim x x = 1 While x < 5 document.write("Welcome.") x=x+1 Wend </script>
ผลลัพธ์ที่ได้จะเป็น
VBScript สำหรับวงถัดไป
ลูป For-Next สามารถใช้เพื่อดำเนินการบล็อกโค้ดตามจำนวนครั้งที่ระบุ “VBScript For loop” ระบุตัวแปรตัวนับและค่าเริ่มต้นและสิ้นสุด คำสั่ง Next จะเพิ่มตัวแปรตัวนับทีละตัว
For i = 1 To 5 document.write("The number is " & i & " ") Next
หากคุณรันโค้ดคุณจะได้ผลลัพธ์ดังนี้:
VBScript สำหรับขั้นตอนถัดไปวนซ้ำ
ตามค่าเริ่มต้น ตัวแปรตัวนับจะเพิ่มขึ้นทีละหนึ่ง หากคุณต้องการเพิ่มหรือลดตัวแปรตัวนับตามค่าที่คุณระบุ คุณสามารถใช้ For….Step….Next loop สมมติว่าในโค้ดด้านบน คุณต้องการเพิ่มตัวนับ 2 จากนั้นแก้ไขโค้ดของคุณดังนี้:
For i = 1 To 5 Step 2 document.write("The number is " & i & "<br />") Next </script>
ผลลัพธ์ของรหัสนี้จะเป็น:
หากคุณต้องการออกจากลูป For Next หรือ For Step Next ในระหว่างนั้น คุณสามารถใช้ Exit สำหรับคำสั่งได้ สมมติว่าคุณต้องการออกจากบล็อกเมื่อค่าของ i กลายเป็น 3 ในโปรแกรมข้างต้น คุณจะต้องเขียนโค้ดดังนี้:
<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>
การส่งออกจะได้รับ:
VBScript สำหรับแต่ละวงถัดไป
หากคุณต้องการทำซ้ำบล็อกโค้ดสำหรับแต่ละรายการในคอลเลกชันหรือสำหรับแต่ละองค์ประกอบของอาร์เรย์ VBS คุณจะต้องใช้ For…Each…Next loop
<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>
ผลลัพธ์ของรหัสที่ระบุข้างต้นจะเป็น
ตัวอย่างรหัส
<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>
บันทึกไฟล์เป็น loop.html ในตำแหน่งที่คุณต้องการ จากนั้นเปิดไฟล์ใน Internet Explorer แล้วคุณจะเห็นกล่องข้อความขอให้คุณป้อนชื่อของคุณ ป้อนชื่อ เช่น Aaron เช่นนี้:
คลิกตกลงและผลลัพธ์ของคุณจะมีลักษณะดังนี้:
สรุป
- คำสั่งวนซ้ำใช้เพื่อดำเนินการบล็อกโค้ดเดียวกันซ้ำแล้วซ้ำอีก
- คุณจะใช้ลูป Do-While, Do-Until และ While-Wend เมื่อคุณไม่ทราบล่วงหน้าว่าจะต้องดำเนินการบล็อกกี่ครั้ง
- คุณจะใช้ลูป For-Next, For-Next-Step และ For-Each-Next หากคุณทราบจำนวนครั้งที่คุณต้องดำเนินการบล็อกโค้ดแล้ว