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

blog comments powered by Disqus