<< Go Back

คำสั่งใช้ในการเลือกเส้นทางการทำงานของโปรแกรมจะทำให้เราสามารถเลือกเส้นทางการทำงานของโปรแกรมตามเงื่อนไขที่ต้องการได้ คำสั่งประเภทนี้แบ่งออกได้เป็น 2 คำสั่ง คือ

คำสั่ง If –Then – Else

เป็นคำสั่งที่ใช้เลือกทำเส้นทางใดเส้นทางหนึ่งมีรูปแบบดังนี้

จากคำสั่งข้างต้นจะเป็นคำสั่งที่ตรวจสอบเงื่อนไขหลังคำว่า If ถ้าเงื่อนไขเป็นจริง หรือ True โปรแกรมจะทำงานตามคำสั่งที่อยู่หลังคำว่า Then แต่ถ้าเงื่อนไขเป็นเท็จ หรือ False โปรแกรมในส่วนของ  Else ก็ได้ โดยสามารถเขียนคำสั่งย่อได้ดังนี้                    

          

ตัวอย่าง ถ้าหากตัวแปร StudentGrade เก็บค่าคะแนน และต้องการเขียนคำสั่งตัดเกรดของนักศึกษาสามารถเขียนได้ดังนี้

 จากตัวอย่างถ้าหากคะแนนมีค่ามากกว่าหรือเท่ากับ 60 โปรแกรมจะพิมพ์คำว่า Passed ออกมา                                          
ตัวอย่างที่ 1 โปรแกรมนี้จะใช้คำนวณอัตราค่าจ้าง โดยให้ผู้ใช้ป้อนจำนวนชั่วโมงทำงานเข้าไป เมื่อคลิกปุ่ม Calculate โปรแกรมจะแสดงค่าจ้างออกมา ให้ออกแบบโปรแกรมแบบ Windows Forms โดยสร้างฟอร์มแล้วนำคอนโทรลมาวางดังนี้     

           

สำหรับในโปรแกรมจะกำหนดค่าจ้างต่อชั่วโมงเป็น 230 ถ้าหากต้องการให้คลิกปุ่ม Calculate ให้โปรแกรมคำนวณอัตราค่าจ้างออกมา โปรแกรมที่เขียนขึ้นจะต้องอ่านข้อความที่ป้อนเข้าไปทางเท็กซ์บ๊อกซ์ TxtHours แล้วเปลี่ยนเป็นตัวเลข จากนั้นคำนวณอัตราค่าจ้างแล้วนำค่าที่คำนวณได้ไปแสดงผลทางเท็กซ์บ๊อกซ์ TxtGross
ถ้าหากกำหนดให้โปรแกรมรับชั่วโมงการทำงานระหว่าง 0 ถึง 40 ชั่วโมง ถ้าหากจำนวนชั่วโมงไม่อยู่ในช่วงนี้ให้โปรแกรมแจ้งข้อผิดพลาด (Error) ออกมา การเขียนโปรแกรมสามารถนำคำสั่งเลือกทำมาใช้ได้ ให้ดับเบิลคลิกที่ปุ่ม Calculate แล้วเขียนโปรแกรมต่อไปนี้ลงไป

จากโปรแกรมที่เขียนขึ้นจะใช้เมธอด TryParse มาเปลี่ยนข้อความในเท็กซ์บ๊อกซ์ txtHours ให้เป็นตัวเลขไปเก็บไว้ในตัวแปร dblHoursWorked จากนั้นใช้ตัวดำเนินการ And มาตรวจสอบเงื่อนไขว่าชั่วโมงการทำงานอยู่ในช่วงที่กำหนดหรือไม่ ถ้าเป็นจริงจะคำนวณแล้วแสดงผล แต่ถ้าเป็นเท็จจะแจ้ง Error ออกมา เมื่อรันโปรแกรมให้ลองป้อนข้อมูลจำนวนชั่วโมงลงไป แล้วคลิกปุ่ม Calculate

สำหรับการตรวจสอบเงื่อนไขหลายเงื่อนไขยังสามารถนำคำสั่ง If มาซ้อนกันได้อีกด้วยดังตัวอย่างต่อไปนี้

ตัวอย่าง   การใช้คำสั่ง If-Then – Else สำหรับการเลือกทำสองทาง

จากตัวอย่างข้างต้น ถ้าค่าตัวแปร i มีค่ามากกว่า 0 โปรแกรมจะพิมพ์ข้อความ Greater Then 0 ออกมา  นอกนั้นจะพิมพ์ข้อความ Less Then Or Equal 0 ออกมา

คำสั่ง Select – Case

สำหรับการเขียนโปรแกรมที่มีการเลือกทำหลายทิศทาง การนำคำสั่ง If มาซ้อนกันนั้นอาจจะไม่สะดวก ถ้าหากเป็นการเลือกทำหลายทางเลือกโดยเลือกจากเส้นทางการทำงานของโปรแกรมจากค่านิพจน์ที่กำหนด       จะใช้คำสั่ง Select – Case ซึ่งมีรูปแบบคำสั่งดังต่อไปนี้

คำสั่ง Select – Case นั้นจะทำงานตามค่าที่อยู่หลังคำว่า Select Case ถ้าค่าตรงกับค่าที่อยู่หลังคำว่า Case ใด ก็จะทำงานตามคำสั่งที่อยู่หลัง Case นั้น แต่ถ้าไม่ตรงกับค่าใดเลยโปรแกรมจะทำตามคำสั่งที่อยู่หลังคำว่า Case Else จนถึงคำสั่งว่า End Select
ในการเปรียบเทียบถ้าหากมีเงื่อนไขหลายเงื่อนไขอยู่ใน Case เดียวกันจะใช้เครื่องหมาย ‘,’ คั่น สำหรับกรณีข้อมูลที่นำมาเปรียบเทียบเป็นช่วงจะใช้คำว่า To เป็นตัวเชื่อมในช่วง และสำหรับในกรณีที่เป็นตัวเลขแล้วต้องการนำตัวดำเนินการเปรียบเทียบมาใช้จะต้องมี Is อยู่หลัง Case ดังตัวอย่างการใช้งานต่อไปนี้

จากตัวอย่างข้างต้น เราจะได้ผลลัพธ์ซึ่งตรงกับในกรณีของ Case Else โดยโปรแกรมจะพิมพ์คำว่า Not positive number ออกมา เนื่องจากค่า Number มีค่าเท่ากับ -1
ตัวอย่าง โปรแกรมต่อไปนี้เป็นโปรแกรมตัดเกรดโดยจะให้ผู้ใช้ป้อนคะแนนเข้าไป จากนั้นโปรแกรมจะแสดงเกรดออกมาทางกล่องข้อความให้สร้างโปรแกรมแบบ Windows Form โดยวางคอนโทรลต่างๆ ลงไปแล้วกำหนดชื่อดังต่อไปนี้
ในการเขียนโปรแกรมจะต้องประกาศตัวแปรขึ้นมาสองตัว โดยตัวแรกจะให้ชื่อว่า grade สำหรับเก็บค่าเกรดที่ได้และข้อความที่จะแสดงเมื่อป้อนคะแนนเข้าไปไม่ถูกต้อง ตัวแปรตัวที่สอนจะให้ชื่อว่า score สำหรับเก็บคะแนนเป็นตัวเลข การเขียนโปแกรมให้ดับเบิลคลิกที่ปุ่ม “ ตกลง” แล้วเขียนโค้ดต่อไปนี้ลงไป โดยเขียนเพิ่มในส่วนที่อยู่ในกรอบสี่เหลี่ยม

เมื่อรันโปรแกรมจะพบว่าข้อมูลที่ป้อนเข้าไปเท็กซ์บ็อกซ์จะเป็นข้อความ ดังนั้นจะต้องเปลี่ยนข้อความให้เป็นตัวเลขเสียก่อน ในโปรแกรมจะเขียนเป็น

โดยเรียกใช้เมธอด Toln32 เพื่อเปลี่ยนข้อความที่ป้อนเข้าไปในช่อง Scorelnput ให้เป็นตัวเลขจำนวนเต็มแล้วเก็บในตัวแปร score จากนั้นโปรแกรมจะใช้ Select Case เพื่อเลือกว่าคะแนนที่ป้อนเข้าไปจะได้เกรดในช่วงใด ตัวอย่างของการรันโปรแกรมเป็นดังนี้

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

  • คำสั่ง For-Next                  
  • คำสั่ง Do –Loop
  • คำสั่ง While

คำสั่ง For – Next

คำสั่งนี้จะใช้การทำงานซ้ำที่ทราบจำนวนครั้งในการทำซ้ำที่แน่นอน โดยมีรูปแบบดังนั้น

คำสั่งนี้จะใช้การทำงานซ้ำที่ทราบจำนวนครั้งในการทำซ้ำที่แน่นอน โดยมีรูปแบบดังนั้น

จากตัวอย่าง ถ้าหากโปรแกรมทำงานจะพิมพ์ค่า 0, 2, 4, 6, 8, 10 ออกมา

ตัวอย่าง                การใช้คำสั่ง For…Next ยังใช้ในรูปแบบอื่นๆ ได้อีกดังต่อไปนี้

ตัวอย่าง  โปรแกรมต่อไปเป็นการแสดงตัวเลข  10 ถึง  13 บนฟอร์ม ให้สร้างโปรแกรมแบบ Windows Form โดยออกแบบฟอร์มดังต่อไปนี้

เมื่อวางคอนโทรลเลเบลลงไปแล้ว  กำหนดให้มีชื่อว่า lblPrice จากนั้นให้ดับเบิลคลิกที่ปุ่ม Go แล้วเขียนโค้ดต่อไปนี้ลงไป

จากโปรแกรมเมื่อคลิกปุ่ม Go จะให้แสดงตัวเลขตั้งแต่  10 ถึง  13  ตำแหน่งที่วางเลเบล โดยการเขียนโปรแกรมจะเปลี่ยนตัวเลขเป็นตัวอักษร แล้วเพิ่มตัวอักษรพิเศษ (ตัวขึ้นบรรทัดใหม่) โดยใช้เมธอด NewLine จากนั้นนำทั้งหมดไปวางในเลเบล เมื่อรันโปรแกรมแล้วคลิกปุ่ม Go ผลลัพธ์ที่ได้จะเป็นดังนี้

คำสั่ง Do – Loop

คำสั่งนี้จะให้โปรแกรมทำงานซ้ำ โดยจำนวนครั้งในการทำซ้ำจะขึ้นอยู่กับเงื่อนไขหลังคำว่า While หรือ Until โดยรูปแบบของคำสั่งเป็นดังนี้

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

ตัวอย่างเช่น  ถ้าหากเขียนคำสั่งทำซ้ำตามรูปแบบต่อไปนี้

คำสั่งจะทำซ้ำในขณะที่เงื่อนไขเป็นจริงอยู่ และทำซ้ำจนกว่าเงื่อนไขจะเป็นเท็จจึงจะออกจากลูป (Loop) คำสั่งนี้จะตรวจสอบเงื่อนไขในการทำซ้ำก่อนเข้าลูป ดังนั้น จำนวนครั้งในการทำซ้ำของคำสั่งจะมีค่าตั้งแต่ 0 ครั้งขึ้นไป ถ้าหากทำไปจนพบคำสั่ง Exit Do โปรแกรมจะออกจากการทำซ้ำทันที

นอกจากนี้ ยังปรับให้เป็นคำสั่งที่ทำซ้ำแบบตรวจสอบเงื่อนไขหลังเข้าลูปได้อีกด้วย โดยมีรูปแบบดังนี้

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

จากตัวอย่างข้างต้น โปรแกรมจะทำงานโดยการพิมพ์ค่า 0 ถึง 9 แล้วจึงออกจากลูป นอกจากนี้ยังมีคำสั่งนี้มีคำสั่งในอีกรูปแบบหนึ่งคือ
คำสั่งนี้จะทำงานเหมือนกับคำสั่ง Do While…Loop แต่ต่างกันตรงที่จะทำซ้ำในขณะที่เงื่อนไขยังคงเป็นเท็จอยู่ และทำจนกว่าเงื่อนไขเป็นจริงจึงจะออกจากลูป
คำสั่งนี้จะทำในลูปก่อนหนึ่งรอบเสมอจึงจะตรวจสอบเงื่อนไข และทำซ้ำจนกว่าเงื่อนไขจะเป็นจริงจึงจะออกจากลูป

คำสั่ง While

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

สำหรับหัวข้อนี้จะยกตัวอย่างการเขียนโปรแกรมประยุกต์ในลักษณะของ Windows Forms และจะกล่าวถึงการใช้คอนโทรลต่างๆ และเมธอดที่น่าสนใจในโปรแกรมประยุกต์นั้นๆ ด้วย
การเขียนโปรแกรมด้วย VB ข้อมูลชนิดต่างๆ จะถูกมองเป็นคลาส ถ้าหากมีประกาศตัวแปรขึ้นมาก็หมายความว่าตัวแปรนั้นเป็นออบเจ็กต์ของของคลาสด้วย ดังนั้นเราสามารถใช้เมธอดในการเปลี่ยนตัวแปรให้เป็นข้อมูลประเภทอื่นๆ ได้ง่าย เช่น ใช้เมธอด ToString() สำหรับเปลี่ยนตัวเลขให้เป็นข้อความ ในการเขียนโปรแกรมแบบ Windows Forms นั้นคอนโทรลส่วนใหญ่ที่ใช้สำหรับป้อนข้อมูลจะรับข้อมูลเป็นข้อความเช่นกัน ถ้าหากต้องการเปลี่ยนข้อมูลที่ป้อนให้เป็นตัวเลขเพื่อนำไปคำนวณก็สามารถใช้เมธอดต่างๆ ในการเปลี่ยนชนิดของข้อมูลได้
การใช้เมธอด Financial.Pmt
ใน VB มีเมธอดหนึ่งที่น่าสนใจในการเขียนโปรแกรมคำนวณด้านการเงินคือเมธอด Financial.Pmt (Pmt มาจากคำว่า “Paymant”) เมธอดนี้สามารถใช้คำนวณการผ่อนชำระด้านการเงินได้ เช่น การซื้อสินค้าชิ้นหนึ่งเป็นคำนวณเงิน 30,000 บาท และต้องการผ่อนชำระ 12 เดือนโดยคิดดอกเบี้ยร้อยละ 5 เมื่อส่งค่าต่างๆ เข้าไปในเมธอด ก็สามารถคำนวณออกมาได้ว่าจะต้องชำระเงินเดือนละเท่าไหร่ โดยจะคำนวณแบบลดต้นลดดอก รูปแบบการใช้เมธอดเป็นดังนี้

ตัวอย่างนี้จะคำนวณยอดเงิน 9,000 ผ่อนชำระ 3 ปี ดอกเบี้ย  5% โดยแทนค่า Rate เท่ากับ .05 แทนค่า NPer เท่ากับ 3 และแทนค่า PV เท่ากับ 9,000 เมธอดนี้จะคืนค่า -3,304.88 ซึ่งคือค่าที่ต้องจ่ายแต่ละงวด

ตัวอย่างนี้จะคำนวณยอดเงิน 12,000 ผ่อนชำระ  5 ปี  ดอกเบี้ย  6%  โดยจ่ายเป็นรายเดือนเมธอดนี้จะคืนค่า ให้ออกแบบหน้าจอของโปรแกรมให้มีรูปร่างและชื่อคอนโทรลดังต่อไปนี้

ถ้าหากต้องการให้โปรแกรมที่ออกแบบ นำข้อมูลยอดเงิน ดอกเบี้ย จำนวนปี มาคำนวณเป็นยอดที่ต้องจ่ายรายเดือน สามารถนำเมธอด Financial.Pmt มาใช้ได้ โปรแกรมจะต้องอ่านข้อมูลที่ป้อนเข้าไป มาเปลี่ยนเป็นตัวเลข จากนั้นคำนวณแล้วนำผลที่ได้เปลี่ยนเป็นข้อความเพื่อนำไปแสดงผล ดังนั้นจะต้องเขียนโค้ดให้กับปุ่ม btnCal เพื่อให้โปรแกรมคำนวณ โดยดับเบิลคลิกที่ปุ่ม btnCal แล้วเขียนโค้ดดังต่อไปนี้ลงไป

สำหรับปุ่ม btnExit ใช้สำหรับออกจากโปรแกรมให้ดับเบิลคลิกแล้วเขียนโค้ดดังต่อไปนี้ลงไป      

เมื่อรันโปรแกรมแล้วทดลองป้อนค่าต่างๆ ลงไป จากนั้นคลิกปุ่มให้คำนวณ ผลลัพธ์ที่ได้จะเป็นดังต่อไปนี้

<< Go Back