วันอังคารที่ 1 กันยายน พ.ศ. 2558

ตัวอย่างการเขียนโปรแกรมแบบวนซ้ำ (Loop)

การเขียนโปรแกรมแบบวนซ้ำ (Loop)

         คำสั่งในกลุ่มนี้ เป็นอีกกลุ่มหนึ่งที่จะต้องใช้งานบ่อยครั้งที่สุด ไม่ว่าคุณจะพัฒนาแอพพลิเคชันด้วยภาษาอะไรก็ตาม เพราะมีหน้าที่สำหรับสั่งให้ VB ประมวลผลซ้ำกลุ่มคำสั่งเดิม วนไปเรื่อยๆ จนกว่าจะตรงกับเงื่อนไข ที่คุณต้องการ และยังมีหน้าที่สำหรับลดขั้นตอนในการเขียนโค๊ดคำสั่ง
*********************************************************************************

คำสั่งที่ใช้ในการวนซ้ำ (Loop)

1. จำนวนรอบที่ซ้ำตายตัว มีลูปFor . . . Next ( ตีความหมายให้เข้าใจง่ายคือ ทำซ้ำตามจำนวนรอบที่กำหนด )

2. จำนวนรอบที่วนซ้ำไม่ตายตัว มีลูปDo While . . . Loop ( ตีความหมายให้เข้าใจง่ายคือ เปรียบเทียบค่าก่อน แล้วเมื่อเป็นจริงจะทำซ้ำ )
Do Loop . . . While ( ตีความหมายให้เข้าใจง่ายคือ ทำก่อน แล้วเปรียบเทียบค่า หากเป็นจริงจะทำซ้ำ )
Do Until . . . Loop ( ตีความหมายให้เข้าใจง่ายคือ เปรียบเทียบค่าก่อน แล้วเมื่อเป็นจริงจึง จะทำซ้ำ )
Do Loop . . . Until ( ตีความหมายให้เข้าใจง่ายคือ ทำก่อน แล้วเปรียบเทียบค่า หากเป็นจริง จะทำซ้ำ )

ในการเขียนโปรแกรมคำสั่งนี้ ต้องระบุนิพจน์ให้ได้ ซึ่งกำหนดไว้ 3 นิพจน์ดังนี้
1.นิพจน์กำหนดค่าเริ่มต้น  
2. จำนวนรอบ  
3. ช่วงการเพิ่มค่า
**************************************************************************************************


Clip ตัวอย่างการเขียนคำสั่ง


**************************************************************************************************

ตัวอย่างคำสั่ง For . . . Next

รูปแบบ
For 1.นิพจน์กำหนดค่าเริ่มต้น  To 2. จำนวนรอบ [Step 3. ช่วงการเพิ่มค่า] 
Next 
ในกรณีที่ไม่มีการกำหนดการเพิ่มค่าให้กับนิพจน์ที่ 3 คำสั่งจะเพิ่มครั้งละ 1
ตัวอย่างที่ 1
  For i = 1 To 10
   Print i
  Next

ตัวอย่างที่ 2 นำมาเขียนในโปรแกรม VB
        Dim first, last As Integer
        first = first1.Text
        last = last1.Text
        ListBox1.Items.Clear()
        For first = first To last
            ListBox1.Items.Add(first)
        Next


ตัวอย่างดังภาพค่าที่ได้ จะแสดงผลใน ListBox คือ 1-10
**************************************************************************************************

Do While . . . Loop
(เปรียบเทียบค่าก่อน แล้วเมื่อเป็นจริงจะทำซ้ำ )
รูปแบบ
(1) นิพจน์กำหนดค่าเริ่มต้น 
Do While (2) นิพจน์ตรวจสอบเงื่อนไข 
               (3) นิพจน์เพิ่มค่า 
Loop

ตัวอย่างที่ 1
A = 0
Do While  A < 5
            A = A + 1
Loop

ตัวอย่างที่ 2 นำมาเขียนในโปรแกรม VB
        Dim first, last As Integer
        first = first1.Text
        last = last1.Text
        ListBox1.Items.Clear()
        Do While (first < last)
            ListBox1.Items.Add(first & " ")
            first = first + 1
        Loop

   ตัวอย่างดังภาพค่าที่ได้ จะแสดงผลใน ListBox คือ 1-9 เนื่องจาก นิพจน์ที่ 2 ตรวจสอบเงื่อนไขว่า first < last  น้อยกว่า จริงจะทำการเพิ่มค่าครั้งละ 1 จนถึง 10    ตรวจสอบ 10<10 เป็นเท็จจึงหยุดออกจากการวนซ้ำ 
**************************************************************************************************

Do Loop . . . While
(ทำการคำนวณแล้วจึงเปรียบเทียบค่า เมื่อเป็นจริงจะทำซ้ำ )

รูปแบบ
(1)นิพจน์กำหนดค่าเริ่มต้น 
Do
      (2)นิพจน์เพิ่มค่า 
Loop While  (3)นิพจน์ตรวจสอบเงื่อนไข

ตัวอย่างที่ 1
A = 0
Do 
          A = A + 1
Loop While A < 5


ตัวอย่างที่ 2 นำมาเขียนในโปรแกรม VB
Dim first, last As Integer
        first = first1.Text
        last = last1.Text
        ListBox1.Items.Clear()
        Do
            first = first + 1
            ListBox1.Items.Add(first & " ")
        Loop While (first < last)
สังเกตุว่า ค่าที่ได้จะแสดงค่าเริ่มต้นที่ 2-10 เป็นเพราะว่า โปรแกรมเริ่มทำงานคำนวณก่อน แล้วจึงเข้าสู่ นิพจน์ที่ 2 ตรวจสอบเงื่อนไข
**************************************************************************************************

Do Until . . . Loop
เปรียบเทียบค่าก่อน แล้วเมื่อเป็นเท็จจะทำซ้ำจนกระทั่งเป็นจริงจึงจะหยุดทำซ้ำ
รูปแบบ
(1) นิพจน์กำหนดค่าเริ่มต้น
Do Until (2) นิพจน์ตรวจสอบเงื่อนไข
             (3) นิพจน์เพิ่มค่า
Loop

ตัวอย่างที่ 1
A = 0
Do Until  A = 5
            A = A + 1

Loop
ตัวอย่างที่ 2 นำมาเขียนในโปรแกรม VB
        Dim first, last As Integer
        first = first1.Text
        last = last1.Text
        ListBox1.Items.Clear()
        Do Until first = last
            ListBox1.Items.Add(first & " ")
            first = first + 1
        Loop
จากภาพเป็นการแสดงผลเมื่อทำการคลิกปุ่ม

**************************************************************************************************

Do Loop . . . Until
ทำการคำนวณก่อนจึงจะเปรียบเทียบค่า เมื่อเงื่อนไขเป็นเท็จจะทำซ้ำจนกระทั่งเป็นจริงจึงจะหยุดทำซ้ำ

•รูปแบบ
1)นิพจน์กำหนดค่าเริ่มต้น 
Do
      (2)นิพจน์เพิ่มค่า 
Loop Until  (3)นิพจน์ตรวจสอบเงื่อนไข 
ตัวอย่างที่ 1
A = 0
Do 
          A = A + 1
Loop Until  A > 5
ตัวอย่างที่ 2 นำมาเขียนในโปรแกรม VB

    Dim first, last As Integer
        first = first1.Text
        last = last1.Text
        ListBox1.Items.Clear()
        Do

            first = first + 1
            ListBox1.Items.Add(first & " ")
        Loop Until first = last


สังเกตุจากการแสดงผลเริ่มต้นที่ 2-11 เนื่องจากโปรแกรมเริ่มทำการคำนวณก่อนจึงจะเปรียบเทียบ


ส่วนการแก้โจทย์ปัญหาอัลกอริทึมหัวข้อถัดไปนะครับ

ไม่มีความคิดเห็น :

แสดงความคิดเห็น