SlideShare a Scribd company logo
บทที่ 9
การทางานแบบมีทางเลือก
ประเภทของการทางานแบบมีทางเลือก
การทางานแบบเลือกทานั้นสามารถแบ่งทิศทางการทางานของโปรแกรมได้
ดังนี้
1. การทางานแบบมีทางเลือกเดียว (Single Selection)
2. การทางานแบบสองทางเลือก (Double Selection)
เงื่อนไข
สาหรับการทางานแบบมีทางเลือกเดียวและแบบสองทางเลือก จะต้องมีการ
ตรวจสอบเงื่อนไขเพื่อเป็นตัวพิจารณาว่าจะทาโปรแกรมในทิศทางใดต่อไป การ
ตรวจสอบเงื่อนไขนั้น ผลลัพธ์ที่ได้จะเป็นค่าทางบูลีน คือ มีค่าเป็นไปได้ 2 กรณี คือ
เป็นจริง (true) หรือเป็นเท็จ (false)
กรณีการเลือกทาแบบทางเลือกเดียว ถ้าหากเงื่อนไขเป็นจริง โปรแกรมจะทา
ชุดคาสั่งที่กาหนด แต่ถ้าหากเงื่อนไขเป็นเท็จโปรแกรมจะไม่ทาชุดคาสั่ง ส่วนการเลือก
ทาแบบสองทางเลือก (รูป ข) ถ้าหากเงื่อนไขเป็นจริง โปรแกรมจะทาชุดคาสั่งที่ 1
แต่ถ้าหากเงื่อนไขเป็นเท็จโปรแกรมจะทาชุดคาสั่งที่ 2
ในส่วนของการตรวจสอบเงื่อนไขนั้น จะเป็นการเขียนนิพจน์ที่แสดง
ความสัมพันธ์ระหว่างตัวแปรกับตัวแปร หรือระหว่างตัวแปรกับค่าคงที่ โดยจะนาตัว
ดาเนินการมาใช้ซึ่งส่วนใหญ่แล้วจะเป็นตัวดาเนินการเปรียบเทียบและดาเนินการทาง
ลอจิกดังที่ได้ศึกษามาในบทที่ 3
สาหรับคาอธิบายที่ใช้ในการเลือกทาจะใช้ในการเลือกทาจะใช้คาว่า “ถ้า” ,
“แล้ว” และ “มิฉะนั้นแล้ว” เป็นคาเริ่มต้นจากนั้นจะตามด้วยเงื่อนไขที่ใช้ตัดสินใจ
การเขียนคาอธิบายโปรแกรมจากผังงานแบบมีทางเลือก
ถ้าหากมีผังงานที่มีการเลือกทา ไม่ว่าจะเป็นแบบทางเดียวหรือแบบสองทาง
แล้วต้องการเขียนคาอธิบายการทางาน สิ่งแรกที่ต้องกระทาคือ พยายามแยก
กระบวนการทางานทั้งหมดออกจากผังงานเป็นส่วน ๆ ก่อน จากนั้นให้พิจารณาทิศ
ทางการทางานของโปรแกรมทีละขั้นตอน แล้วจึงเขียนคาอธิบายการทางานออกมา
โดยอธิบายการทางานควรมีหมายเลขบรรทัดด้วย และหมายเลขนี้ควรมีหมายเลข
ตามลาดับของสัญลักษณ์ของผังงาน
ตัวอย่าง
จงเขียนผังงานและคาอธิบายโปรแกรมที่ตรวจสอบอายุ ถ้าหากอายุมากกว่า
25 ปี ให้แสดงคาว่า “เป็นผู้ใหญ่แล้ว” แต่ถ้าอายุไม่เกิน 25 ให้ทางานต่อไป
วิธีทา กาหนดให้ตัวแปร x เป็นอายุที่รับเข้าไป และแยกการทางานของ
โปรแกรมออกเป็นสองทิศทาง คือทิศทางที่เงื่อนไขเป็นจริง จะเขียนผังงานและ
คาอธิบายโปรแกรมได้ดังนี้
การเขียนซูโดโค้ดสาหรับงานแบบมีทางเลือก
จากที่ได้ศึกษาการเขียนซูโดโค้ดมาแล้วในบทที่ 7 จะพบว่าซูโดโค้ดที่
นามาใช้การเขียนโปรแกรมแบบเลือกทาจะใช้คาว่า IF หรือ IF-THEN-ELSE และ
ENDIF ถ้าหากต้องการนามาเขียนแทนคาอธิบายการทางานของโปรแกรมจะใช้คาว่า
“IF” แทนคาอธิบายว่า “ถ้า” ใช้คาว่า “THEN” แทนคาอธิบายว่า “แล้ว” และใช้คาว่า
“ELST” แทนคาอธิบายว่า “มิฉะนั้น” และจบประโยคการเลือกทาด้วย ENDIF
จากปัญหาในตัวอย่างที่ 9.2 ถ้าหากนาคาอธิบายโปรแกรมในลักษณะของ
ข้อความมาเขียนเป็น
ซูโดโค้ดจะเขียนได้ดังนี้
คาอธิบายโปรแกรม
ซูโดโค้ด
สาหรับกรณีที่เป็นการเลือกทาแบบทางเดียวดังต่ออย่างที่ 9.1 จะเห็นว่าใน
คาอธิบายโปรแกรมจะไม่มีคาว่า “มิฉะนั้น” เมื่อนามาเขียนเป็นซูโดโค้ดก็จะไม่มีคาว่า
“ELSE” ดังนั้นอธิบายโปรแกรมในตัวอย่างที่ 9.1 สามารถเขียนเป็นซูโดโค้ดได้ดังนี้
คาอธิบายโปรแกรม
ซูโดโค้ด
การเขียนผังงานจากซูโดโค้ดแบบมีทางเลือก
ผังงานนอกจากจะเขียนขึ้นมาจากการวิเคราะห์ปัญหาแล้ว ยังเขียนขึ้นมา
จากซูโดโค้ดได้เช่นกันสาหรับกรณีที่โปรแกรมเป็นแบบมีทางเลือก ให้พยายามแยก
ประโยค IF ออกมาเป็นกลุ่ม ๆ แล้ว พิจารณาว่าถ้าเงื่อนไขเป็นจริงจะทาทิศทางใด
เงื่อนไขเป็นเท็จจะทาทิศทางใด
จากรูป จะเห็นว่าการตรวจสอบเงื่อนไขหลังคาว่า IF จะนาไปเขียนใน
สี่เหลี่ยมขนมปียกปูน และนาชุดคาสั่งที่เป็นจริงมาเขียนในสัญลักษณ์การประมวลผล
เมื่อเป็นจริง นาชุดคาสั่งหลัง ELSE มาเขียนในสัญลักษณ์การประมวลผลเมื่อเป็นเท็จ
สาหรับโปรแกรมที่มีเงื่อนไขการเลือกทาซ้อนกันก็ใช้วิธีการแยกประโยค IF ออกมา
เป็นกลุ่มในลักษณะเดียวกัน
การทางานแบบมีทางเลือกหลายทาง
สาหรับการทางานที่มีทางเลือกหลายทางนั้นสามารถเขียนประโยค IF
..THEN..ELSE มาซ้อนกันได้ แต่ถ้าหากมีทางเลือกมากขึ้นจะทาให้การเขียนแบบ IF
ดูแล้วซับซ้อนและไม่ค่อยสะดวก ดังนั้นจึงมีการนาคาว่า “CASE” , “OF” และ
“ENDCASE” มาใช้ พิจารณารูป
เมื่อการทางานของระบบเข้าสู่เงื่อนไขการเลือกทา ระบบจะตรวจสอบว่า
คงคงที่ที่ได้จากการตรวจสอบเงื่อนไข (CASE) ถ้าหากทราบว่ามีค่าเท่ากับค่าคงที่
หรือ CASE ใด ก็จะกระโดดไปทากิจกรรมที่อยู่ใน CASE นั้น แต่ถ้าหากไม่เท่ากับ
CASE ใดเลยก็จะตรวจสอบ CASE ใหม่ หรือไม่ก็ไม่ทากิจกรรมใดเลย
กรณีศึกษาการทางานแบบมีทางเลือก
สาหรับในหัวข้อนี้จะแสดงตัวอย่างงานที่มีการทางานแบบเลือกทาเพื่อเป็น
แนวทางในการเขียนโปรแกรมต่อไป
ตัวอย่าง
จงเขียนโปรแกรมรับเลขจานวนเต็ม แล้วให้คอมพิวเตอร์แสดงค่าสมบูรณ์
ของเลขนั้นออกมาก
วิธีทา จากการวิเคราะห์ปัญหาของโจทย์จะพบว่าข้อมูลอินพุตคือจานวน
เต็ม เอาต์พุตก็เป็นเลขจานวนเต็มที่เป็นค่าสัมบูรณ์ของเลขนั้น สาหรับวิธีการ
ประมวลผลทาโดยตรวจสอบว่าเลขที่รับเข้ามานั้นมีค่ามากกว่า 0 หรือไม่ ถ้ามากกว่า
ให้แสดงเลขนั้น ถ้าน้อยกว่าให้ทาเป็นค่าบวกโดยนาค่า -1 ไปคูณ
สาหรับการตรวจสอบความถูกต้องของขั้นตอนการทางาน สามารถทาโดย
การสมมุติค่าตัวแปรขึ้นมาแล้วทดลองแทนค่าดังขั้นตอนต่อไปนี้
1. สร้างตัวเลขทดสอบทางอินพุต
2. ลองคิดคาตอบการประมวลผลด้วยตนเอง
char_1 b a
char_2 g s
char_3 k z
3. สร้างตารางขึ้นมาแสดงการทางานและดูค่าตัวแปรทีละขั้นตอน
char_1 char_2 char_3 Temp
ขอ
1 k b g
2 b k k
3 g k k
4 g b
5 ง ง ง
1 z s a
2 s z z
3 a z z
4 a s
5 ง ง ง

More Related Content

More from จูน นะค่ะ

หน่วยที่ 10 การทำงานแบบมีทำซ้ำ
หน่วยที่ 10 การทำงานแบบมีทำซ้ำหน่วยที่ 10 การทำงานแบบมีทำซ้ำ
หน่วยที่ 10 การทำงานแบบมีทำซ้ำ
จูน นะค่ะ
 
หน่วยที่ 10 การทำงานแบบมีทำซ้ำ
หน่วยที่ 10 การทำงานแบบมีทำซ้ำหน่วยที่ 10 การทำงานแบบมีทำซ้ำ
หน่วยที่ 10 การทำงานแบบมีทำซ้ำ
จูน นะค่ะ
 
บทที่ 9 การทำงานแบบมีทางเลือก
บทที่ 9 การทำงานแบบมีทางเลือกบทที่ 9 การทำงานแบบมีทางเลือก
บทที่ 9 การทำงานแบบมีทางเลือก
จูน นะค่ะ
 
หน่วยที่ 8 การทำงานแบบลำดับ
หน่วยที่ 8 การทำงานแบบลำดับหน่วยที่ 8 การทำงานแบบลำดับ
หน่วยที่ 8 การทำงานแบบลำดับ
จูน นะค่ะ
 
หน่วยที่ 7
หน่วยที่ 7หน่วยที่ 7
หน่วยที่ 7
จูน นะค่ะ
 
หน่วยที่ 6 ผังงาน
หน่วยที่ 6 ผังงานหน่วยที่ 6 ผังงาน
หน่วยที่ 6 ผังงาน
จูน นะค่ะ
 
บทที่ 5
บทที่ 5บทที่ 5
บทที่ 5
จูน นะค่ะ
 
หน่วยที่ 4
หน่วยที่ 4หน่วยที่ 4
หน่วยที่ 4
จูน นะค่ะ
 
หน่วยที่ 3 การคำนวณของคอมพิวเตอร์
หน่วยที่ 3 การคำนวณของคอมพิวเตอร์หน่วยที่ 3 การคำนวณของคอมพิวเตอร์
หน่วยที่ 3 การคำนวณของคอมพิวเตอร์
จูน นะค่ะ
 
หน่วยที่ 2 ตรรกศาสตร์
หน่วยที่ 2 ตรรกศาสตร์หน่วยที่ 2 ตรรกศาสตร์
หน่วยที่ 2 ตรรกศาสตร์
จูน นะค่ะ
 
หน่วยที่ 1 พื้นฐานเกี่ยวกับเซต
หน่วยที่ 1 พื้นฐานเกี่ยวกับเซตหน่วยที่ 1 พื้นฐานเกี่ยวกับเซต
หน่วยที่ 1 พื้นฐานเกี่ยวกับเซต
จูน นะค่ะ
 
หน่วยที่ 10 การทำงานแบบมีทำซ้ำ
หน่วยที่ 10 การทำงานแบบมีทำซ้ำหน่วยที่ 10 การทำงานแบบมีทำซ้ำ
หน่วยที่ 10 การทำงานแบบมีทำซ้ำ
จูน นะค่ะ
 
หน่วยที่ 8 การทำงานแบบลำดับ
หน่วยที่ 8 การทำงานแบบลำดับหน่วยที่ 8 การทำงานแบบลำดับ
หน่วยที่ 8 การทำงานแบบลำดับ
จูน นะค่ะ
 
หน่วยที่ 7
หน่วยที่ 7หน่วยที่ 7
หน่วยที่ 7
จูน นะค่ะ
 
หน่วยที่ 6 ผังงาน
หน่วยที่ 6 ผังงานหน่วยที่ 6 ผังงาน
หน่วยที่ 6 ผังงาน
จูน นะค่ะ
 
บทที่ 5
บทที่ 5บทที่ 5
บทที่ 5
จูน นะค่ะ
 
หน่วยที่ 4
หน่วยที่ 4หน่วยที่ 4
หน่วยที่ 4
จูน นะค่ะ
 
หน่วยที่ 3 การคำนวณของคอมพิวเตอร์
หน่วยที่ 3 การคำนวณของคอมพิวเตอร์หน่วยที่ 3 การคำนวณของคอมพิวเตอร์
หน่วยที่ 3 การคำนวณของคอมพิวเตอร์
จูน นะค่ะ
 
หน่วยที่ 1 พื้นฐานเกี่ยวกับเซต
หน่วยที่ 1 พื้นฐานเกี่ยวกับเซตหน่วยที่ 1 พื้นฐานเกี่ยวกับเซต
หน่วยที่ 1 พื้นฐานเกี่ยวกับเซต
จูน นะค่ะ
 
หน่วยที่ 10 การทำงานแบบมีทำซ้ำ
หน่วยที่ 10 การทำงานแบบมีทำซ้ำหน่วยที่ 10 การทำงานแบบมีทำซ้ำ
หน่วยที่ 10 การทำงานแบบมีทำซ้ำ
จูน นะค่ะ
 

More from จูน นะค่ะ (20)

หน่วยที่ 10 การทำงานแบบมีทำซ้ำ
หน่วยที่ 10 การทำงานแบบมีทำซ้ำหน่วยที่ 10 การทำงานแบบมีทำซ้ำ
หน่วยที่ 10 การทำงานแบบมีทำซ้ำ
 
หน่วยที่ 10 การทำงานแบบมีทำซ้ำ
หน่วยที่ 10 การทำงานแบบมีทำซ้ำหน่วยที่ 10 การทำงานแบบมีทำซ้ำ
หน่วยที่ 10 การทำงานแบบมีทำซ้ำ
 
บทที่ 9 การทำงานแบบมีทางเลือก
บทที่ 9 การทำงานแบบมีทางเลือกบทที่ 9 การทำงานแบบมีทางเลือก
บทที่ 9 การทำงานแบบมีทางเลือก
 
หน่วยที่ 8 การทำงานแบบลำดับ
หน่วยที่ 8 การทำงานแบบลำดับหน่วยที่ 8 การทำงานแบบลำดับ
หน่วยที่ 8 การทำงานแบบลำดับ
 
หน่วยที่ 7
หน่วยที่ 7หน่วยที่ 7
หน่วยที่ 7
 
หน่วยที่ 6 ผังงาน
หน่วยที่ 6 ผังงานหน่วยที่ 6 ผังงาน
หน่วยที่ 6 ผังงาน
 
บทที่ 5
บทที่ 5บทที่ 5
บทที่ 5
 
หน่วยที่ 4
หน่วยที่ 4หน่วยที่ 4
หน่วยที่ 4
 
หน่วยที่ 3 การคำนวณของคอมพิวเตอร์
หน่วยที่ 3 การคำนวณของคอมพิวเตอร์หน่วยที่ 3 การคำนวณของคอมพิวเตอร์
หน่วยที่ 3 การคำนวณของคอมพิวเตอร์
 
หน่วยที่ 2 ตรรกศาสตร์
หน่วยที่ 2 ตรรกศาสตร์หน่วยที่ 2 ตรรกศาสตร์
หน่วยที่ 2 ตรรกศาสตร์
 
หน่วยที่ 1 พื้นฐานเกี่ยวกับเซต
หน่วยที่ 1 พื้นฐานเกี่ยวกับเซตหน่วยที่ 1 พื้นฐานเกี่ยวกับเซต
หน่วยที่ 1 พื้นฐานเกี่ยวกับเซต
 
หน่วยที่ 10 การทำงานแบบมีทำซ้ำ
หน่วยที่ 10 การทำงานแบบมีทำซ้ำหน่วยที่ 10 การทำงานแบบมีทำซ้ำ
หน่วยที่ 10 การทำงานแบบมีทำซ้ำ
 
หน่วยที่ 8 การทำงานแบบลำดับ
หน่วยที่ 8 การทำงานแบบลำดับหน่วยที่ 8 การทำงานแบบลำดับ
หน่วยที่ 8 การทำงานแบบลำดับ
 
หน่วยที่ 7
หน่วยที่ 7หน่วยที่ 7
หน่วยที่ 7
 
หน่วยที่ 6 ผังงาน
หน่วยที่ 6 ผังงานหน่วยที่ 6 ผังงาน
หน่วยที่ 6 ผังงาน
 
บทที่ 5
บทที่ 5บทที่ 5
บทที่ 5
 
หน่วยที่ 4
หน่วยที่ 4หน่วยที่ 4
หน่วยที่ 4
 
หน่วยที่ 3 การคำนวณของคอมพิวเตอร์
หน่วยที่ 3 การคำนวณของคอมพิวเตอร์หน่วยที่ 3 การคำนวณของคอมพิวเตอร์
หน่วยที่ 3 การคำนวณของคอมพิวเตอร์
 
หน่วยที่ 1 พื้นฐานเกี่ยวกับเซต
หน่วยที่ 1 พื้นฐานเกี่ยวกับเซตหน่วยที่ 1 พื้นฐานเกี่ยวกับเซต
หน่วยที่ 1 พื้นฐานเกี่ยวกับเซต
 
หน่วยที่ 10 การทำงานแบบมีทำซ้ำ
หน่วยที่ 10 การทำงานแบบมีทำซ้ำหน่วยที่ 10 การทำงานแบบมีทำซ้ำ
หน่วยที่ 10 การทำงานแบบมีทำซ้ำ
 

บทที่ 9 การทำงานแบบมีทางเลือก