คำสั่งวนรอบ

คำสั่ง 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