Loop

นอกเหนือจากการวน 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 อย่างเดียว) ซึ่งค่อนข้างเรียบง่าย และทำให้ย้ายไปเขียนภาษาอื่นได้เป็นธรรมชาติกว่าใช้เทคนิคทุกอย่างในตอนนี้ครับ

Nattawut Phetmak

Jack of all Trades