Nattawut Phetmak
Jack of all Trades
นอกเหนือจากการวน for ที่ทราบจำนวนครั้งแน่นอนแล้ว มีการวนแบบ while ที่ไม่จำเป็นต้องรู้จำนวนครั้งก่อนวน
Dim i As Integer
While True
MessageBox.Show(i)
i += 1
If i >= 5 Then
Exit While
End If
End While
ซึ่งจะให้ผลลัพท์ออกมาเป็นการวนพิมพ์ค่าตั้งแต่เลข 0 ถึงเลข 4 ครับ
นอกจากนี้ Visual Basic มันยังมี do loop แยกออกมาอีกต่างหากด้วย ซึ่งการใช้นั้นจะเหมือนกับ while เลย เพียงแต่สามารถควบคุมการวนได้มากกว่า เช่น
Dim i As Integer
Do While i < 5
MessageBox.Show(i)
i += 1
Loop
และยังมี until ซึ่งมีหลักการทำงานสลับข้างกับ while ตรงที่ until จะเข้าไปวนซ้ำเมื่อเงื่อนไขเป็น False
และหลุดการวนเมื่อเป็น True
ครับ
Dim i As Integer
Do Until i >= 5
MessageBox.Show(i)
i += 1
Loop
นอกจากนี้ เรายังสามารถสั่งให้ทำการวนอย่างแน่นอน 1 ครั้ง (ไม่ว่าเงื่อนไขตั้งต้นจะเป็นอย่างไร) ก่อนที่จะเริ่มตรวจแล้ววนซ้ำตามปรกติก็ได้
Dim i As Integer
Do
MessageBox.Show(i)
i += 1
Loop While i < 0
อย่างไรก็ดี แม้ว่าเราจะสามารถเขียนการวนซ้ำได้หลากหลายรูปแบบ แต่เมื่อพิจรณาดูดีๆ แล้ว จะพบว่าเราสามารถลดรูปการเขียนให้เหลือเพียงรูปแบบเดียวได้ (ใช้แค่ while อย่างเดียว) ซึ่งค่อนข้างเรียบง่าย และทำให้ย้ายไปเขียนภาษาอื่นได้เป็นธรรมชาติกว่าใช้เทคนิคทุกอย่างในตอนนี้ครับ