คำสั่งวนรอบ
คำสั่ง For
คำสั่ง For เป็นคำสั่งในการทำงานแบบวนรอบหรือลูป (Loop) จากค่าเริ่มต้นจนถึงค่าสุดท้ายของตัวที่ใช้นับ การนับจะเป็นการนับแบบเพิ่มค่าหรือลดค่าก็ได้ การวนรอบโดยใช้คำสั่ง
For จะทราบจำนวนรอบในการทำงานชัดเจน
รูปแบบคำสั่ง
For ตัวนับ = ค่าเริ่มต้น To ค่าสุดท้าย (Step ค่าตัวนับที่เพิ่ม/ลดในแต่ละรอบ)
คำสั่งที่ปฏิบัติ ในกรณีที่ตัวนับยังไม่เกินค่าสุดท้าย
Next
หมายเหตุ : ในกรณีที่ไม่ระบุ Step จะหมายถึง การเพิ่มค่าทีละ 1
ตัวอย่าง
Dim sum As Integer
Dim max As Integer
max = TextBox1.Text
For i = 0 To max
sum += i
Next
MessageBox.Show(“ผลลัพธ์ =” & sum)
การกำหนด การเพิ่มค่า หรือลดค่าที่ไม่ใช่ทีละ 1 จะใช้คำสั่ง Step
เช่น For i = 0 To 100 Step 10 i จะเพิ่มค่าทีละ 10
คำสั่ง For ซ้อนกัน (Nest For)
คำสั่งวนรอบโดยใช้ For สามารถใช้ลูป For ซ้อนกันกี่ชั้นก็ได้ คล้ายกับ Nest If
รูปแบบคำสั่ง
For ตัวนับที่ 1 = ค่าเริ่มต้น To ค่าสุดท้าย
คำสั่ง
For ตัวนับที่ 2 = ค่าเริ่มต้น To ค่าสุดท้าย
คำสั่ง
Next
Next
เช่น
Dim s As String = “ ”
For i = 1 To 5
For j = 1 To i
s &= j & “ ”
Next
s &= vbNewLine
Next
MessageBox.Show(s, “ทดสอบ Nest For”)
คำสั่ง While
การวนรอบโดยใช้คาสั่ง While แตกต่างจากการวนรอบโดยใช้คำสั่ง For คือ การวนรอบโดยใช้คำสั่ง For จะทราบจำนวนรอบที่ชัดเจนว่าวนกี่รอบ แต่การวนรอบโดยใช้คำสั่ง While ใช้สำหรับ เมื่อไม่ทราบจำนวนรอบที่ชัดเจน จำเป็นจะต้องใช้เงื่อนไขในการตรวจสอบการวนรอบ
การวนรอบโดยใช้ Loop While จะทำการตรวจสอบเงื่อนไขก่อนเข้าทำงานในรอบ ในกรณีที่เงื่อนไขเป็นจริงจะสามารถวนรอบได้ แต่ถ้าเงื่อนไขเป็นเท็จจะไม่สามารถวนรอบได้ หรือถ้ามีการวนรอบอยู่แล้วจะจบการทำงานจากการวนรอบ ดังนั้น Loop While จึงจัดเป็นประเภท “การตรวจสอบเงื่อนไขขาเข้า”
รูปแบบคำสั่ง
While <เงื่อนไข>
คำสั่ง
End While
Dim i As Integer = 1, sum As Integer = 0
While i<= 100
sum += i
i += 1
End While
MessageBox.Show (sum, “ผลรวมของ 1- 100”)
หมายเหตุ :การวนรอบโดยใช้คำสั่ง While จะต้องเขียนโปรแกรมเพื่อเพิ่มค่าตัวแปรเงื่อนไขในแต่ละรอบเอง
คำสั่ง Do…Loop While และ Do…Loop Until
การวนรอบโดยใช้คำสั่ง ทั้ง 2 รูปแบบจะเป็น “การตรวจสอบเงื่อนไขขาออก” หรือ ตรวจสอบเงื่อนไขที่ท้ายลูป โดยจะมีการทำงานตามคำสั่งที่อยู่ในลูปอย่างน้อย 1 ครั้งเสมอ ดังนั้นรูปแบบจึงเหมาะที่ต้องมีการกระทำ บางอย่างไปก่อนในครั้งแรก แล้วค่อยตรวจสอบเงื่อนไขภายหลัง
ข้อแตกต่างระหว่าง Do…Loop While และ Do…Loop Until คือ
Do…Loop Whileจะวนรอบตราบใดที่เงื่อนไขยังเป็นจริง ถ้าเงื่อนไขเป็น เท็จ จะจบการวนรอบ
Do…Loop Untilจะวนรอบตราบใดที่เงื่อนไขยังเป็นเท็จ ถ้าเงื่อนไขเป็นจริง จะจบการวนรอบ
รูปแบบคำสั่ง Do…Loop While
Do
คำสั่ง
Loop While<เงื่อนไข>
ตัวอย่าง Do…Loop While
Dim x, sum As Integer
x = 1 : sum = 0
Do
sum += x
x += 1
Loop While (x<= 10)
โปรแกรมจะวนรอบไปเรื่อย ๆ ตราบใดที่ x ยังตรงกับเงื่อนไขคือ x<= 10 (ถ้าเงื่อนไขเป็นเท็จจะจบการทำงาน Loop)
รูปแบบคำสั่ง Do…Loop Until
Do
คำสั่ง
Loop Until<เงื่อนไข >
ตัวอย่าง Do…Loop Until
Dim x, sum As Integer
x = 1 : sum = 0
Do
sum += x
x += 1
Loop Until (x > 10)
โปรแกรมจะวนรอบไปเรื่อย ๆ จนกระทั่งตรงตามเงื่อนไข คือ x > 10 จึงจะออกจาก Loop (ถ้าเงื่อนไขเป็นจริงจะจบการวน Loop)
การวนรอบโดยใช้คำสั่ง Do While…Loop และ Do Until…Loop
การวนรอบโดยใช้คำสั่งทั้ง 2 รูปแบบจะเป็น “การตรวจสอบเงื่อนไขขาเข้า” หรือ การตรวจสอบเงื่อนไขที่ต้นลูป การทางานจะคล้ายกับการวนรอบโดยใช้คำสั่ง Do…Loop While และ
Do…Loop Until ในเรื่องการตรวจสอบเงื่อนไข แต่จะต่างกันตรงเป็นการตรวจสอบเงื่อนไขขาเข้า หรือ ขาออกเท่านั้น ถ้าเป็นการตรวจสอบเงื่อนไขขาเข้าแล้วอาจจะไม่มีการทำงานในลูปเลยแม้แต่รอบเดียวก็ได้ แต่ ถ้าเป็นการตรวจสอบเงื่อนไขขาออก จะทำงานในลูปอย่างน้อย 1 รอบเสมอ
รูปแบบคำสั่ง Do While…Loop
Do While <เงื่อนไข>
คำสั่ง
Loop
ในกรณี Do While ถ้าเงื่อนไขเป็นจริงจะทำงานในลูป แต่ถ้าเงื่อนไขเป็นเท็จจะออกจากการวนลูป
รูปแบบคำสั่ง Do Until…Loop
Do Until <เงื่อนไข>
คำสั่ง
Loop
ในกรณี Do Until ถ้าเงื่อนไขเป็นเท็จ จะทำงานในลูป แต่ถ้าเงื่อนไขเป็นจริง จะออกจากการวนลูป
ตัวอย่าง Do While…Loop
Dim x , sum As Integer
x = 1 : sum = 0
Do While x <= 10
sum += x
x += 1
Loop
MessageBox.Show (“ sum = ” & sum)
ตัวอย่าง Do Until…Loop
Dim x , sum As Integer
x = 1 : sum = 0
Do Until x > 10
sum += x
x += 1
Loop
MessageBox.Show (“ sum =” & sum)
ตัวอย่างที่ 3
การใช้ Loop While หรือ Loop Until
คำสั่ง :ให้นักเรียนเพิ่มฟอร์มใหม่เพื่อทดสอบคำสั่ง Loop While หรือ Loop Until
1. ให้สร้างปุ่มกด 4ปุ่ม
ปุ่มที่ 1 ให้กำหนดพร็อพเพอร์ตี้ Text = Do…Loop While
ปุ่มที่ 2 ให้กำหนดพร็อพเพอร์ตี้ Text = Do…Loop Until
ปุ่มที่ 3 ให้กำหนดพร็อพเพอร์ตี้ Text = Do While…Loop
ปุ่มที่ 4 ให้กำหนดพร็อพเพอร์ตี้ Text = Do Until…Loop
2. เขียนโค้ดให้กับ ปุ่ม Do…Loop While และ Do…Loop Until (โดยต่างกัน ที่เงื่อนไขขาออก)
Dim b As DialogResult = DialogResult.No
Dim n As Integer = 1
Do
b =MessageBox.Show(“คุณชอบโปรแกรม Visual Basic 2010 หรือเปล่า ? ”, _
“ถ า ม ค รั้ ง ที่ :” &n.ToString( ) , MessageBoxButtons.YesNo,
_MessageBoxIcon.Question)
n += 1
Loop While (b <>DialogResult.Yes) ‘วนรอบจนกว่าจะตอบ Yes
หรือ
Loop Until (b = DialogResult.Yes) ‘วนรอบจนกว่าจะตอบ Yes
MessageBox.Show (“ขอบคุณสำหรับคำตอบ” , “จบการทำงาน”)
3. ให้เขียนโค้ดให้กับ ปุ่ม Do While…Loop และ Do While…Loop ให้ใช้งานได้เหมือนกับ ข้อ 2