VBScript วนซ้ำ: ทำในขณะที่ ทำจนกระทั่ง ในขณะที่ สำหรับแต่ละ (ตัวอย่าง)

⚡ สรุปอย่างชาญฉลาด

VBScript Loops อธิบายวิธีการทำซ้ำการกระทำโดยใช้โครงสร้าง Do While, Do Until, While Wend, For Next, For Step และ For Each โดยครอบคลุมไวยากรณ์ เงื่อนไขการออกจากลูป และตัวอย่าง

  • 🔁 ทำระหว่างนี้: วนลูปตราบใดที่เงื่อนไขเป็นจริง
  • ทำจนกว่า: วนลูปจนกว่าเงื่อนไขจะเป็นจริง
  • 🪟 ขณะที่เวนด์: ลูปแบบเดิมที่ไม่มีตัวเลือกออก
  • 🔢 สำหรับครั้งต่อไป: ลูปแบบนับจำนวนพร้อมขั้นตอนเสริม (Step)
  • 📦 สำหรับแต่ละรายการถัดไป: วนซ้ำอาร์เรย์ พจนานุกรม หรือคอลเลกชัน
  • 🤖 ผู้ช่วย AI: AI สร้างลูป VBScript และอธิบายวิธีการออกจากลูป

ลูป VBScript

เหตุใดจึงใช้ Loops ใน VBScript

ลูปใช้สำหรับเรียกใช้โค้ดส่วนเดิมซ้ำแล้วซ้ำเล่า มีลูปใน VBScript อยู่หลายประเภทping คำสั่งต่างๆ บางส่วนของ VBScriptping คำสั่งต่างๆ ได้แก่ Do While, Do Until, For…..Next และอื่นๆ ดังนั้น คุณจะตัดสินใจเลือกอย่างไรว่าควรใช้คำสั่งใดping มีข้อความใดที่สามารถนำไปใช้กับความต้องการของคุณได้บ้าง?

ขณะที่กำลังรันลูป คุณอาจจะรู้หรือไม่รู้ก็ได้ว่าคุณต้องการรันชุดคำสั่งกี่ครั้ง ตัวอย่างเช่น คุณต้องการคำนวณผลรวมของตัวเลขสองจำนวนสิบครั้ง ในกรณีนี้ คุณรู้แล้วว่าคุณต้องการทำซ้ำบล็อกโค้ด 10 ครั้ง สมมติว่าคุณต้องการคำนวณผลรวมของตัวเลขสองจำนวนจนกว่าตัวแปรที่กำหนดจะเป็นจริง ในกรณีนี้ คุณไม่รู้ว่าลูปจะทำงานกี่ครั้ง ดังนั้น ขึ้นอยู่กับว่าคุณรู้หรือไม่รู้จำนวนครั้งที่ลูปจะทำงาน คุณสามารถใช้ลูปประเภทต่างๆ ได้ping งบ

สำหรับ…ห้องน้ำถัดไปping คำสั่ง `if` ใช้เมื่อคุณต้องการทำซ้ำบล็อกโค้ดเป็นจำนวนครั้งที่จำกัด โดยที่คุณทราบจำนวนครั้งที่ต้องการทำซ้ำบล็อกโค้ดนั้น

ทำในขณะที่ และ ทำจนกว่าping คำสั่ง `if` ใช้เมื่อคุณต้องการทำซ้ำบล็อกโค้ดจนกว่าเงื่อนไขจะเป็นจริงหรือเท็จ นั่นคือเมื่อคุณไม่ทราบจำนวนครั้งที่ต้องการเรียกใช้บล็อกโค้ดนั้น

ลองมาดูห้องน้ำเหล่านี้กันเถอะping ทีละข้อความ

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>

หากคุณลองรันโค้ด คุณจะได้ผลลัพธ์ดังนี้:

VBScript ทำในขณะที่วนซ้ำ

บล็อกจะถูกดำเนินการสี่ครั้ง (เมื่อ x=1,2,3 และ 4) และการวนซ้ำจะสิ้นสุดเมื่อค่าของ x กลายเป็น 5 หากคุณลืมคำสั่ง x=x+1 การวนซ้ำของคุณจะกลายเป็นการวนซ้ำที่ไม่มีวันสิ้นสุด หนึ่ง. ลูปประเภทนี้เรียกว่า ลูปอนันต์ลูปที่ไม่สิ้นสุดอาจทำให้ระบบของคุณล่มได้ ดังนั้น ขณะใช้ลูป Do While ให้ระมัดระวังping คำสั่งต่างๆ คุณควรตรวจสอบให้แน่ใจว่ามีโค้ดบางส่วนที่จะทำให้ห้องน้ำใช้งานได้ping เงื่อนไขนี้เป็นจริงในบางช่วงเวลา

หากคุณกำหนดค่า 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>

หากคุณรันโค้ด ผลลัพธ์ของคุณจะมีลักษณะดังนี้:

VBScript ทำจนกระทั่งวนซ้ำ

ที่นี่การวนซ้ำจะออกจากเมื่อค่า 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 ในขณะที่วนซ้ำ

VBScript สำหรับวงถัดไป

ลูป For-Next สามารถใช้เพื่อดำเนินการบล็อกโค้ดตามจำนวนครั้งที่ระบุ “VBScript For loop” ระบุตัวแปรตัวนับและค่าเริ่มต้นและสิ้นสุด คำสั่ง Next จะเพิ่มตัวแปรตัวนับทีละตัว

For i = 1 To 5
  document.write("The number is " & i & "
")
Next

หากคุณรันโค้ดคุณจะได้ผลลัพธ์ดังนี้:

VBScript สำหรับวงถัดไป

VBScript สำหรับขั้นตอนถัดไปวนซ้ำ

ตามค่าเริ่มต้น ตัวแปรตัวนับจะเพิ่มขึ้นทีละหนึ่ง หากคุณต้องการเพิ่มหรือลดตัวแปรตัวนับตามค่าที่คุณระบุ คุณสามารถใช้ For….Step….Next loop สมมติว่าในโค้ดด้านบน คุณต้องการเพิ่มตัวนับ 2 จากนั้นแก้ไขโค้ดของคุณดังนี้:

For i = 1 To 5 Step 2
  document.write("The number is " & i & "<br />")
Next
</script>

ผลลัพธ์ของรหัสนี้จะเป็น:

VBScript สำหรับขั้นตอนถัดไปวนซ้ำ

หากคุณต้องการออกจากลูป 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 สำหรับขั้นตอนถัดไปวนซ้ำ

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>

ผลลัพธ์ของรหัสที่ระบุข้างต้นจะเป็น

VBScript สำหรับแต่ละวงถัดไป

Code ตัวอย่าง

<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 เช่นนี้:

VBScript สำหรับแต่ละวงถัดไป

คลิกตกลงและผลลัพธ์ของคุณจะมีลักษณะดังนี้:

VBScript สำหรับแต่ละวงถัดไป

คำถามที่พบบ่อย

Do While จะทำงานเมื่อเป็นจริง Do Until จะทำงานเมื่อเป็นเท็จ

ใช่แล้ว AI แปลง VBScript เป็น PowerShell Pythonหรือ Javaต้นฉบับ

AI จะตรวจจับค่าที่เพิ่มขึ้นไม่ครบและแนะนำคำสั่ง Exit Do

ใช้ Exit Do หรือ Exit For Wend ไม่มีตัวเลือก Exit

ใช่ แต่ Do While เป็นที่นิยมมากกว่าเนื่องจากมีฟังก์ชัน Exit Do รองรับ

สำหรับแต่ละคีย์ใน dict.Keys ให้เข้าถึง dict.Item(key)

Microsoft เลิกใช้แล้ว ให้ใช้ PowerShell หรือ Python สำหรับงานใหม่

สำหรับ i = 1 ถึง 10 ขั้นตอนที่ 2 ขั้นตอนที่เป็นลบจะเดินจากสูงไปต่ำ

สรุปโพสต์นี้ด้วย: