VB.Net คำสั่ง For Each…Next, Exit, Continue

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

VB.Net For Each คือ looping คำสั่งที่ทำซ้ำบล็อกโค้ดหนึ่งครั้งสำหรับแต่ละองค์ประกอบในอาร์เรย์หรือคอลเลกชัน ทำให้คุณสามารถอ่านแต่ละรายการทีละรายการได้โดยไม่ต้องทำซ้ำ tracกษัตริย์เป็นดัชนี

  • 🔁 วัตถุประสงค์: ทำซ้ำคำสั่งหนึ่งครั้งสำหรับแต่ละรายการในคอลเลกชันหรืออาร์เรย์
  • 🧩 ไวยากรณ์: ลูปจะทำงานจาก For Each … In ไปจนถึงคำสั่ง Next ที่ตรงกัน
  • 📚 คอลเลกชัน: คำสั่ง For Each จะวนซ้ำข้อมูลประเภท IEnumerable ใดๆ เช่น อาร์เรย์ รายการ และพจนานุกรม
  • 🪆 การทำรัง: One For Each inside another คือการจับคู่ไอเท็มภายนอกทุกชิ้นกับไอเท็มภายในทุกชิ้น
  • การควบคุมการไหล: Exit For จะออกจากลูป; Continue For จะข้ามไปยังรายการถัดไป
  • 🤖 ความช่วยเหลือจาก AI: GitHub Copilot และ IntelliCode ใน Visual Studio 2026 ให้สร้างลูป For Each โดยอัตโนมัติขณะพิมพ์

VB.Net สำหรับแต่ละวง

VB.Net สำหรับแต่ละวง

VB.Net For Each คือ looping คำสั่งนี้เหมาะสำหรับใช้เมื่อคุณต้องการทำซ้ำชุดคำสั่งสำหรับทุกรายการที่คุณมีในคอลเลกชัน คุณสามารถใช้คำสั่งนี้เพื่อจัดการกับองค์ประกอบทั้งหมดที่มีอยู่ในคอลเลกชันหรืออาร์เรย์ได้

ไวยากรณ์ของ VB.Net สำหรับแต่ละ... คำสั่งถัดไป

การขอ VB.Net คำสั่ง For Each ใช้ไวยากรณ์ดังต่อไปนี้:

For Each item [ As data_type ] In group  
    [ statement(s) ]  
    [ Continue For ]  
    [ statement(s) ]  
    [ Exit For ]  
    [ statement(s) ]  
Next [ item ]

ที่นี่

  • การขอ item คือตัวแปรที่จะใช้วนซ้ำไปทีละรายการในคอลเลกชัน ตัวแปรนี้จำเป็นต้องใช้ในคำสั่ง For Each แต่เป็นตัวเลือกในคำสั่ง Next
  • การขอ data_type คือ ประเภทข้อมูล ขององค์ประกอบ จำเป็นหากรายการไม่ได้รับการประกาศ
  • การขอ group คือการรวบรวมข้อความที่จะกล่าวซ้ำ มันเป็นสิ่งจำเป็น
  • การขอ statement(s) เป็นทางเลือก หมายถึงคำสั่งหนึ่งหรือหลายคำสั่งที่จะดำเนินการสำหรับทุกรายการในกลุ่ม
  • การขอ Continue For จะถ่ายโอนการควบคุมไปยังจุดเริ่มต้นของ For Each loop มันเป็นทางเลือก
  • การขอ Exit For จะถ่ายโอนการควบคุมออกจาก For Each loop มันเป็นทางเลือก
  • การขอ Next เป็นจุดสิ้นสุดของ For Each loop มันเป็นสิ่งจำเป็น

วิธีการใช้งานแต่ละลูปใน VB.Net

ตัวอย่างต่อไปนี้แสดงวิธีการใช้ลูป For Each ใน VB.Net

ขั้นตอน 1) สร้างแอปพลิเคชันคอนโซลใหม่

ขั้นตอน 2) ใช้รหัสต่อไปนี้:

Module Module1
    Sub Main()
        Dim myArray() As Integer = {10, 3, 12, 23, 9}
        Dim item As Integer
        For Each item In myArray
            Console.WriteLine(item)
        Next
        Console.ReadKey()
    End Sub
End Module

ขั้นตอน 3) คลิกปุ่ม Start จากแถบด้านบนเพื่อรันโค้ด คุณควรจะได้ผลลัพธ์ดังต่อไปนี้:

ตัวอย่างผลลัพธ์ของลูป For Each ใน VB.Net

นี่คือภาพหน้าจอของรหัส:

ตัวอย่างโค้ดลูป For Each ใน VB.Net

คำอธิบายของ Code:

  1. การสร้างโมดูลชื่อ Module1
  2. เริ่มขั้นตอนย่อยหลัก
  3. การสร้างอาร์เรย์ชื่อ myArray ด้วยชุดจำนวนเต็ม 5 ตัว
  4. การสร้างรายการชื่อตัวแปรจำนวนเต็ม
  5. การใช้ตัวแปร item เพื่อวนซ้ำรายการของอาร์เรย์ชื่อ myArray
  6. การพิมพ์รายการที่พบในอาร์เรย์ตามคำสั่งด้านบนบนคอนโซล
  7. จุดสิ้นสุดของ For Each วนซ้ำ
  8. การหยุดหน้าต่างคอนโซลชั่วคราวชั่วขณะหนึ่งเพื่อรอให้ผู้ใช้ดำเนินการเพื่อปิดหน้าต่าง
  9. สิ้นสุดขั้นตอนย่อยหลัก
  10. จุดสิ้นสุดของโมดูล

ซ้อนกันสำหรับลูปใน VB.Net

ลูป For Each สามารถซ้อนกันได้ โดยเราจะใส่ลูป For Each หนึ่งไว้ภายในลูป For Each อีกอัน เราจะสาธิตให้ดูโดยใช้ตัวอย่าง

ขั้นตอน 1) สร้างแอปพลิเคชันคอนโซลใหม่

ขั้นตอน 2) ใช้รหัสต่อไปนี้:

Module Module1
    Sub Main()
        Dim nums() As Integer = {12, 23, 35}
        Dim names() As String = {"Guru99", "alice", "antony"}
        For Each n As Integer In nums
            For Each st As String In names
                Console.Write(n.ToString & st & " ")
            Next
        Next
        Console.ReadKey()
    End Sub
End Module

ขั้นตอน 3) คลิกปุ่ม Start จากแถบด้านบนเพื่อรันโค้ด คุณจะได้รับผลลัพธ์ดังต่อไปนี้:

การแสดงผลลูป For Each ซ้อนกันใน VB.Net

นี่คือภาพหน้าจอของรหัส:

ตัวอย่างโค้ดการใช้ลูป For Each ซ้อนกันใน VB.Net

คำอธิบายของรหัส:

  1. การสร้างโมดูลชื่อ Module1
  2. เริ่มขั้นตอนย่อยหลัก
  3. การสร้างอาร์เรย์ชื่อ nums ด้วยชุดจำนวนเต็ม
  4. การสร้างอาร์เรย์ที่มีชื่อชื่อพร้อมชุดชื่อ
  5. การสร้างตัวแปร n และใช้เพื่อวนซ้ำรายการที่มีอยู่ในอาร์เรย์ชื่อ nums นี่คือด้านนอกสำหรับแต่ละวง
  6. การสร้างตัวแปรชื่อ st และใช้เพื่อวนซ้ำรายการที่มีอยู่ในอาร์เรย์ชื่อชื่อ นี่คือวงในสำหรับแต่ละวง
  7. การรวมรายการจากสองอาร์เรย์เข้าด้วยกัน รายการแต่ละรายการในอาร์เรย์ nums จะรวมกับแต่ละรายการในอาร์เรย์ names ฟังก์ชัน ToString ช่วยให้เราแปลงตัวเลขที่อ่านได้จากอาร์เรย์ nums เป็นสตริง เครื่องหมาย "" ช่วยให้เราสร้างช่องว่างหลังการรวมแต่ละรายการ การรวมนี้ทำได้โดยใช้เครื่องหมาย & (แอมเปอร์แซนด์)
  8. ปลายด้านในสำหรับแต่ละวง
  9. ปลายด้านนอกสำหรับแต่ละวง
  10. หยุดหน้าต่างคอนโซลชั่วคราวเพื่อรอให้ผู้ใช้ดำเนินการเพื่อปิด
  11. สิ้นสุดขั้นตอนย่อยหลัก
  12. จุดสิ้นสุดของโมดูล

VB.Net ออกสำหรับและดำเนินการต่อสำหรับใบแจ้งยอด

เมื่อคุณใช้คำสั่ง Exit For การดำเนินการจะออกจากลูป For Each … Next และการควบคุมจะถูกถ่ายโอนไปยังคำสั่งที่อยู่หลังคำสั่ง Next

เมื่อคุณใช้คำสั่ง Continue For การควบคุมจะถูกถ่ายโอนไปยังการวนซ้ำครั้งถัดไปของลูปของคุณ ให้เราสาธิตสิ่งนี้โดยใช้ตัวอย่าง:

ขั้นตอน 1) เริ่มต้นด้วยการสร้างแอปพลิเคชันคอนโซลใหม่

ขั้นตอน 2) ใช้รหัสต่อไปนี้:

Module Module1
    Sub Main()
        Dim nums() As Integer =
    {10, 12, 14, 17, 19, 23, 26, 31, 33, 37, 40, 48}
        For Each n As Integer In nums
            If n >= 17 And n <= 25 Then
                Continue For
            End If
            Console.Write(n.ToString & " ")
            If n = 37 Then
                Exit For
            End If
        Next
        Console.ReadKey()
    End Sub
End Module

ขั้นตอน 3) รันโค้ดโดยคลิกปุ่ม Start จากแถบด้านบน คุณจะได้ผลลัพธ์ดังต่อไปนี้:

เอาต์พุต Exit For และ Continue For ของ VB.Net

นี่คือภาพหน้าจอของรหัส:

ตัวอย่างโค้ด VB.Net สำหรับคำสั่ง Exit For และ Continue For

คำอธิบายของ Code:

  1. การสร้างโมดูลชื่อ module1
  2. เริ่มขั้นตอนย่อยหลัก
  3. การสร้างอาร์เรย์ชื่อ nums ด้วยชุดจำนวนเต็ม
  4. การสร้างตัวแปรชื่อ n จากนั้นเราจะใช้มันเพื่อวนซ้ำองค์ประกอบที่มีอยู่ในหมายเลขอาร์เรย์
  5. การใช้เงื่อนไข If…Then เพื่อตรวจสอบค่าของตัวแปร n หากค่าอยู่ระหว่าง 17 (รวม 17) ถึง 25 (รวม 25) การวนซ้ำจะข้ามไปยังรายการถัดไปในอาร์เรย์
  6. ข้ามไปping การดำเนินการตามค่าข้างต้นจะทำที่นี่ นี่คือคำสั่งที่จำเป็นสำหรับการข้าม ซึ่งหมายความว่าลูป For Each จะไม่ทำงานสำหรับรายการที่ถูกข้าม
  7. สิ้นสุดเงื่อนไข If
  8. พิมพ์ค่าที่ได้จากอาร์เรย์บนคอนโซล ฟังก์ชัน ToString ช่วยให้เราแปลงค่าจากตัวเลขเป็นสตริงได้ เครื่องหมาย "" จะสร้างช่องว่างหลังค่าที่พิมพ์แต่ละค่า
  9. การตรวจสอบตัวแปรการวนซ้ำ n ว่าค่าของมันคือ 37 โดยใช้เงื่อนไข If…Then
  10. ออกจากลูป For Each เมื่อเงื่อนไขข้างต้นเป็นจริง นั่นคือค่า n=37 ซึ่งหมายความว่าการวนซ้ำรายการอาร์เรย์จะหยุดลง
  11. สิ้นสุดเงื่อนไข If ข้างต้น
  12. จุดสิ้นสุดของ For … แต่ละคำสั่ง
  13. หยุดหน้าต่างคอนโซลชั่วคราวเพื่อรอให้ผู้ใช้ดำเนินการเพื่อปิด
  14. สิ้นสุดขั้นตอนย่อยหลัก
  15. จุดสิ้นสุดของโมดูล

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

คำสั่ง For Each ไม่มีดัชนีและเป็นแบบอ่านอย่างเดียว ส่วนคำสั่ง For Next ใช้ตัวนับตัวเลข รองรับคีย์เวิร์ด Step และสามารถเปลี่ยนแปลงรายการตามตำแหน่งได้

ไม่ครับ คำสั่ง For Each จะแสดงเฉพาะรายการปัจจุบัน ไม่ใช่ตำแหน่งของรายการนั้น หากต้องการดัชนี ให้ใช้ลูป For Next ร่วมกับตัวนับครับ

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

ประเภท IEnumerable ใดๆ รวมถึง แถว, รายการ และ พจนานุกรม คำสั่ง For Each ใช้ตัวแจงนับภายใน ดังนั้นไวยากรณ์เดียวจึงอ่านข้อมูลทั้งหมดได้

ส่วนของโค้ดจะไม่ทำงาน การดำเนินการจะดำเนินต่อไปหลังจากคลิก Next หากตั้งค่าคอลเลกชันเป็น Nothing ฟังก์ชัน For Each จะโยน NullReferenceException

สำหรับอาร์เรย์นั้น For Next อาจเร็วกว่าเล็กน้อย เนื่องจาก For Each เพิ่มภาระการทำงานของตัววนซ้ำ แต่ความแตกต่างนั้นน้อยมาก ดังนั้นควรเลือกใช้ For Each เพื่อความอ่านง่าย

ใช่. นักบิน GitHub แปลงความคิดเห็นภาษาอังกฤษธรรมดาให้เป็นบล็อก For Each ที่สมบูรณ์ Revตรวจสอบให้แน่ใจว่าประเภทของคอลเลกชันและรายการตรงกับข้อมูลของคุณ

ใช่ Visual Studio 2026 จับคู่ Copilot กับ อินเทลลิCode สำหรับการเติมข้อความอัตโนมัติแบบเต็มบรรทัดโดยคำนึงถึงบริบทขณะที่คุณพิมพ์

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