วชิ า การเขยี นโปรแกรมโดยใชเ้ ครื่องมอื กราฟกิ โหมด รหัสวิชา 2204-2107 หนว่ ยที่ 5 เร่อื ง การเขยี นโปรแกรมการทา้ ซา้ Loop นางกชพร รัตนปราการ ครแู ผนกวิชาคอมพวิ เตอร์ธรุ กจิ
หวั ข้อเรือ่ ง การเขียนโปรแกรมแบบมีการท้าซา้ Loop เนอื หา 5.1 หลกั การเขยี นโปรแกรมแบบมีการท้าซา้ ในการเขียนโปรแกรมบางครัง จะมีการท้างานของโปรแกรมทต่ี อ้ งทา้ งานซา้ ๆ ในการประมวลผลรปู แบบเดยี วกัน หากจะต้อท้าการเขียน โปรแกรมเพอ่ื ใหม้ กี ารท้างานซา้ ๆ กันหลายบรรทดั จะเสียเวลาในการเขยี นโปรแกรม สร้างความยงุ่ ยากเนื่องจากบรรทัดคา้ สงั่ มเี ป็นจ้านวน มาก ดงั นนั ในภาษาการเขยี นโปรแกรม จะมีไวยากรณ์ชนิดหนงึ่ ที่ผเู้ ขยี นสามารถน้าไปใชง้ านไดก้ บั งานทต่ี อ้ งมีการประมวลผลซา้ ๆ กนั ใน ขณะหนงึ่ ๆ ของโปรแกรมเรียกการเขยี นโปนแกรมแบบนนั ว่าการเขียนโปรแกรมแบบซา้ หรอื ลบู (Loop) 5.1.1 การเขียนโปรแกรมแบบมีการท้าซา้ ในรูปแบบ While โปรแกรมทมี่ ีการท้าการซา้ โดยการใช้ While มหี ลักการทสี่ า้ คญั คอื ถา้ เงอ่ื นไขท่เี ขียนไวห้ ลงั While ใหค้ า่ ทเี่ ป็นจรงิ (True)การวน ซา้ จะเกิดขนึ อย่างตอ่ เน่ืองไป แตถ่ า้ เมอ่ื ใดทีเ่ งอื่ นไขหลงั Whileเปน็ เท็จ (False) การวนซา้ จะหยดุ ลงทนั ที (ดูรปู ที่ 5.1) 2
การเขียนโปรแกรมโดยใชเ้ คร่อื งมอื กราฟิ กโหมด 3 คา่ เริ่มต้น เช่น Dim l lnteder = 1 ตรวจสอบ เง่ือนไข คาสงั่ ต้องการให้ทาใน While คาสง่ั ที่อยนู่ อก While รูปที่ 5.1 การทางานของ While
การเขยี นโปรแกรมโดยใชเ้ ครื่องมือกราฟิ กโหมด Content 4 จากรูปที่ 5.1 เมื่อนามาเขยี นเป็นไวยากรณก์ ารเขยี นโปรแกรมทีม่ ีการทาซาแบบ While ของ VB สามารถเขียนได้ดังนี While เงือ่ นไข [ คาสง่ั ที่อยใู่ น While ] End While ตวั อย่างเชน่ หากต้องการเขียนเงื่อนไขหลัง While ใหค้ ่าตัวแปร a มคี า่ นอ้ ยกวา่ 5 คาสั่งใน While จึงจะวนลูปการทางานซา สามารถเขียนโค้ดโปรแกรมได้ ดังตวั อยา่ ง Ex.1 Ex.1 Dim a integer 1 While a< 5 MsgBox(a) a = a+1 End While
การเขียนโปรแกรมโดยใชเ้ คร่ืองมือกราฟิ กโหมด 5.1.2 การเขยี นโปนแกรมแบบมีการท้าซา้ ในรปู Do…Loop สา้ หรบั คา้ สัง่ Do…Loop นันจะคลา้ ยกับการใช้ While ทีผ่ ่านมา แตก่ ารวนลปู ของ Do นันจะแตกตา่ งตรงท่ี การทา้ งานของ Do จะ ท้างานในค้าส่ังการวนซ้าก่อน 1 ครังเสมอ แม้เงอ่ื นไขจะไม่เปน็ จรงิ ตงั แต่แรกกต็ าม การใชง้ านDo…Loop มกี ารใชง้ านอยู่2แบบ คอื แบบ Loop While และแบบ Loop Until ซึ่งทงั 2แบบจะท้างานตรงกนั ข้ามกนั กล่าวคอื Loop While จะทา้ การวนทา้ งานซา้ เมือ่ เงือ่ นไขยังเป็นจรงิ อยูแ่ ตส่ ้าหรับ Loop Until จะท้างานเม่ือเงือ่ นไขยงั เทจ็ อยู่ น่ันคือท้างานตรงข้ามกัน นั่นเองระหว่าง Loop While กับ Loop Until 1.แบบ Do…Loop While ดงั ที่กลา่ วไปแลว้ วา่ Do…Loop While จะท้างานอย่างน้อย 1 ครังแม้ว่าเงอื่ นไขจะเป็นเท็จตงั แตแ่ รก และจะยงั มวี นท้างานซ้า เมอ่ื เง่ือนไขยังเปน็ เท็จอยู่ พจิ ารณาดงั รปู 5.2 5
การเขยี นโปรแกรมโดยใชเ้ ครื่องมือกราฟิ กโหมด ค่าเริ่มต้นเชน่ Dim l lnteger = 1 คา้ สงั่ ต้องการใหท้ า้ ใน Do จริง 6 เทจ็ ตรวจสอบเงือ่ นไข รูปท่ี 5.2 การท้างานของ Do….Loop While คา้ สง่ั ที่อยนู่ อก Do
การเขียนโปรแกรมโดยใชเ้ คร่อื งมือกราฟิ กโหมด จากรปู 5.2 หากนา้ มาเขียนเปน็ ไวกรณใ์ นภาษา VB ส้าหรบั Do…Loop While จะไดด้ งั นี 7 Do…Loop While Do [ค้าสง่ั ท่ีอยู่ใน Do] Loop Whole (เงอ่ื นไข) ตัวอย่างเชน่ มีเงื่อนไขในการวนลูป ตัวแปร a ตอ้ งมีคา่ มากกวา่ 10 การวนลปู ภายใน Do จงึ จะท้างานสามารถเขยี นเป็นโคด้ ภาษา VB ไดด้ ังตัวอย่าง Ex.2 Ex.2 Dim a As integer = 9 Do MsgBox(a) a = a+1 Loop While (a > 10 )
การเขยี นโปรแกรมโดยใชเ้ ครอื่ งมือกราฟิ กโหมด 2.แบบ Do…Loop Until ส้าหรบั Do…Loop Until จะคลา้ ยๆ กับ Do…Loop While ที่ผ่านมา เพียงแตว่ ่า Do…Loop Until นันจะทา้ งานกต็ อ่ เม่อื เงื่อนไขหลัง Until เปน็ เทจ็ (Do…Loop While เงื่อนไขต้องเปน็ จรงิ ) คอื มเี ง่อื นไขตรงกันขา้ มกนั นน่ั เอง พจิ ารณารูปที่ 5.3 ค่าเริม่ ตน้ (Start) เช่น Dim l lntedER =1 ค้าส่งั ต้องการใหท้ า้ ในDo จริง ตรวจสอบ เท็จ เงือ่ นไข ค้าส่ังทอ่ี ยูน่ อก Do 8 รปู ที่ 5.3 การทา้ งานของ Do …Loop Until
การเขยี นโปรแกรมโดยใชเ้ ครอ่ื งมือกราฟิ กโหมด 9 จากรูปท่ี 5.3 หากน้ามาเขียนเปน็ ไวยากรณ์ในภาษา VB สา้ หรบั Do…Loop Until จะไดด้ งั นี Do…Loop Until Do [ค้าส่งั ทอี่ ยใู่ น Do] Loop Until (เงอ่ื นไข) Ex.3 Dim a As integer = 10 Do MsgBox (a) a=a–1 Loop Until(a<5)
การเขยี นโปรแกรมโดยใชเ้ คร่อื งมือกราฟิ กโหมด จากตวั อยา่ ง Ex.3 บรรทัดแรกของโปรแกรมเป็นการประกาศตวั แปร a เก็บค่าเลข 10 จากนันจงึ เปน็ บรรทดั การทา้ งานของ Do…Loop Until ให้ดู เงื่อนไขที่หลัง Until จะพบว่าเงอ่ื นไขคือ a ตอ้ งนอ้ ยกว่า 5 รวมลูปถึงจะสนิ สดุ (เปน็ จริงจะสินสุดการวนลูป) ดงั นนั ถ้า a ยังมีค่ามากกวา่ 5 การวนรอบการทา้ งานยังจะคง กระท้าตอ่ เนอื่ งไป (10,9,8,7,6,5) ฉะนนั เพ่อื ใหก้ ารวนลูปนมี ีการทา้ งานออกจากลูปไดจ้ งึ เขยี นโค้ดบรรทัด a = a-1 ไว้ เพื่อใหค้ า่ a มโี อกาสน้องกวา่ 5 มเิ ชน่ นันแล้ว การ ท้างานแบบกระท้าซ้า หรือกรวนลูปจะเกดิ การ lnfinity Loop หรอื การวนลปู ไม่รู้จบเกิดขึนได้ 5.1.3 การเขียนโปรแกรมแบบมีการท้าซา้ ในรปู แบบ For…Next การรวนลูปหรอื โปรแกรมทม่ี กี ารท้างานซ้าในแบบ For จะมหี ลักการในการท้างานคลา้ ยๆ การรวนลูปที่ผา่ นมา แตกต่างกนั ในส่วนของไวยากรณ์การ เขียน ซ่ึงสามารถพิจารณาการท้างานของ For ได้จากรูป 10
การเขียนโปรแกรมโดยใชเ้ ครื่องมือกราฟิ กโหมด ค่าเริ่มตน้ (Start) เชน่ Dim l lniteger = 1 To ค่าสินสุด (End) เชน่ To 5 ตรวจสอบ เท็จ เง่ือนไข Next ค้าสงั่ ท่ีอย่ใู น For รปู ท่ี 5.4 การทา้ งานของ For…Next คา้ ส่งั ทอี่ ยู่ภายนอก For 11
การเขียนโปรแกรมโดยใชเ้ คร่อื งมือกราฟิ กโหมด 12 จากรปู ท่ี 5.4 หากนา้ มาเขยี นเปน็ ไวยากรณใ์ นภาษา VB ส้าหรบั For…Next จะได้ดังนี For ค่าเรม่ิ ตน้ To ค่าสินสุด [คา้ สั่งท่ีอยใู่ น For ] Next ตัวอยา่ งเช่น ถ้าเงอื่ นไขในการวนรปู แบบ For เป็นการวนลปู ตังแตเ่ ลข 1 ถึงเลข 5 สามารถเขียนโค้ดโปรแกรมภาษา VB ดงั ตวั อยา่ ง Ex.4 Ex.4 For a As lnteger = 1 To 5 MagBox(a) Next จากตัวอย่าง Ex.4 ในคา้ ส่ัง For จะพบวา่ สามารถประกาศตัวแปร a พรอ้ มทังการกา้ หนดคา่ ลงไปได้ ซ่งึ คอื ค่าเริ่มต้น (Start ของ การวนลปู ในท่นี ีตัวแปร a เกบ็ ค่า 1 และมีการก้าหนดค่าเลข 5 ซ่ึงเป็นค้าสนิ สุด(End) ไว้หลัง To เพื่อบอกว่า จะเปน็ การวนลูป ตังแต่เลข 1 ถงึ เลขที่ 5
การเขยี นโปรแกรมโดยใชเ้ คร่อื งมือกราฟิ กโหมด 1. For….Next แบบมี Step ในการเขยี นโปรแกรมแบบมีการทา้ ซ้าในแบบ For….Next ท่ีผา่ นมา จะพบว่าค่าท่เี พ่ิมขนึ กบั ตวั แปรเริม่ ตน้ (Start) ทุกครงั ท่มี ีการวนลปู จะมกี ารเพม่ิ ค่าขนึ ครงั ละ 1 ซ่ึงหากตอ้ งการให้ค่าทเี พิม่ ขนึ เพ่มิ ขนึ ครงั ละ 2 หรอื 3 หรอื ใดๆ สามารถระบุ Step หรอื วิธกี ารเพมิ่ คา่ ของตวั เลขในแตล่ ะครงั ของการวนลูปได้ ตวั อย่างเช่นถา้ ตอ้ งการให้ทกุ ครังการวนลูป ตวั เลขจะมคี ่าเพ่มิ ขึนครังละ 2 สามารถท้าได้ ดงั นี EX.5 For a As integer = 1 To 10 Step 2 MsgBox (a) Next จากตัวอย่าง Ex.5 เป็นการระบุ Step ใหเ้ พม่ิ ขนึ ครังละ 2 (Step) นนั่ หมายความวา่ ทกุ ครงั การวนลูป ตวั แปร 13 เริ่มต้น (a) จะถูกเพิม่ คา่ เขา้ ไปทลี ะ 2 (a=a+2) ซ่ึงค่าท่ีได้เป็น 1,3,5,7,9 นนั่ เอง 2. แบบ For Each….Next ส้าหรับการใช้งาน For Each….Next นนั จะใช้กับตวั แปรประเภทอาร์เรย์ (Array) หรอื ขอ้ มลู ประเภทคอล เลคชน่ั (Collection) เนอ่ื งจากการวนลปู ในรปู แบบนีออกแบบมาเพ่ือให้มีการท้างานกบั ตวั แปรประเภทดงทก่ี ลา่ วมา ซึง่ มไี วยากรณ์ ดังนี
การเขียนโปรแกรมโดยใชเ้ ครอื่ งมือกราฟิ กโหมด 14 For…Each…Next For Each ตัวแปรปรับคา่ in Array หรือ Colleation [คา้ ส่ังท่อี ยใู่ นตวั For] Next ตวั อยา่ งเชน่ มีตัวอย่างอารเ์ รยใ์ นโปรแกรม แลโ้ ปรแกรมนันจา้ เปน็ ต้องเขา้ ถงึ ค่าขอ้ มูลของอาร์เรย์ นันในทกุ ขอ้ มูล แบบนสี ามารถใช้ For…Each…Next ในการเขียนโปรแกรมได้ ดังตัวอย่าง Ex.6 Ex.6 Dim arr() As String = {“ Doogle”,”Facebook”,”IG”,”Gmail”} For Each val As String ln arr MsgBox (val) Next
การเขียนโปรแกรมโดยใชเ้ ครอ่ื งมือกราฟิ กโหมด จากตวั อย่าง Ex.6 ในบรรทดั แรกของโปรแกรมมกี ารประกาศตัวแปรอาร์เรยช์ อื่ ว่า arr เก็บคา่ เปน็ String โดยมีคา่ ขอ้ มลู 4 คา่ ต้องการเข้าถงึ ค่าขอ้ มูลนันทงั หมด โดยใชง้ าน For…Each…Next ในบรรทดั ตอ่ มา โดยทีห่ ลัง Each มกี ารประกาศตวั แปร val เป็น String (val As String) ท้าใหก้ ารวนลปู เขา้ ไปในตัวแปร arr (ln arr) หลังจากนันทา้ การแสดงผลดว้ ยกลอ่ ง ข้อความ (magBox (val)) โดยทโ่ี ปรแกรมนจี ะท้าการรวนลปู เขา้ ไปยังตวั แปร arr จนคา่ ขอ้ มูลหมดจากอาร์เรย์ จึงออกจากการวนลปู Ex.7 ตัยา่ งการเขยี นโปรแกรมแบบมีการทา้ ซา้ แลว้ ไม่สามารถออกจากการวนลปู ท้างานซ้าได้ *หา้ มนาไปทดสอบ Dim x < 10 MsgBox(x) End While โปรแกรมในตัวอยา่ ง Ex.7 เป็นการเขียนโปรแกรมโดยใช้ While ในการท้างานซ้า โดยมีเงอ่ื นไขตวั แปร x < 10 ซ่ึงสงั เกตไดว้ า่ ใน การรวนลปู ไม่มบี รรทัดเพอื่ เปลย่ี นแปลงคา่ ตัวแปร x ให้มีคา่ มากขึน 5.2 การเขียนโปรแกรมแบบมกี ารท้าซ้ากบั Visual Basic การเขยี นโปรแกรมแบบมีการท้าซ้าหรอื โปรแกรมแบบมกี ารรวนลูป ผเู้ รยี นอาจทา้ สอบด้วยวธิ กี ารงา่ ยๆ เอทา้ ความเข้าใจ โดยการ เขียนโค้ดการทา้ งานซ้าดงั ในตัวอย่าง Ex.6 ดงั ท่ียกตวั อยา่ งไป โดยเขียนไปทป่ี ุม่ กด (Button) ทวี่ างฟอรม์ (Form) ดังรูปท่ี 5.5 และ 5.6 15
การเขียนโปรแกรมโดยใชเ้ ครอ่ื งมือกราฟิ กโหมด รูปที่ 5.5 การเขยี นโปรแกรมแบบมีการทา้ ซา้ กับ Visual Studio 2012 (Express Eition) 16
การเขียนโปรแกรมโดยใชเ้ ครือ่ งมือกราฟิ กโหมด จากโคด้ โปรแกรมในรูปที่ 5.5 จะเปน็ การประยกุ ตใ์ ชจ้ ากตัวแปรอารเ์ รย์ โดยมีการประกาศตวั แปรอารเ์ รย์ arr() เกบ็ ค่าขอ้ มลู แบบขอ้ ความ และมี จ้านวนอยู่ 4 จ้านวน จากนันใหร้ วนลูปแบบ For Each เพอ่ื เข้าถึงขอ้ มลู ในตัวแปรอารเ์ รยแ์ ตล่ ะข้อละข้อมลู และแสดงผลออกมาเป็นข้อ8;k, รปู ที่ 5.6 การทกสอบเมือ่ คลิกที่ป่มุ (Botton) 17 สรุปสาระสา้ คัญ ในการเขยี นโปรแกรมในแบบท้างานซ้า จะเหน็ ไดว้ ่ามมี ามายหลาย รูปแบบ ซ่งึ แต่ละรูปแบบวิธีการใชง้ านแตกต่างกัน
Search
Read the Text Version
- 1 - 17
Pages: