สอน Flowchart : บทที่ 5 โครงสร้างควบคุม (Control Statement) แบบทางเลือก (Selection Control Statement)

บทเรียนออนไลน์ #199
เขียนโดย :
มีผู้อ่าน : 18,882 คน วันนี้ : 4 คน

สวัสดีครับ มาต่อกันอีกบทความเกี่ยวกับเรื่องพื้นฐานของการเขียนโปรแกรม นั่นคือเรื่อง โครงสร้างควบคุม รูปแบบต่างๆ ซึ่งในบทที่แล้วเราได้พูดถึง โครงสร้างควบคุมแบบเป็นลำดับ (Sequence Control Statement) กันไปแล้ว 

ในบทนี้ เราจะมา เรียนรู้เกี่ยวกับ โครงสร้างควบคุม แบบทางเลือก หรือ Selection Control Statement ครับ ซึ่งการทำงานจะแตกต่างกับ โครงสร้างแบบเป็นลำดับยังไง เราลองมาศึกษากันในบทความนี้เลยครับ

 

โครงสร้างการควบคุม แบบทางเลือก (Selection Control Statement) คือ

โครงสร้างการทำงาน ทีมี เงื่อนไข (Condition) ซึ่งทำให้เกิด ทางเลือก ของทิศทางการทำงาน (Flow) ได้ตั้งแต่ 2 ทางเป็นต้นไป ซึ่งนั่นหมายความว่า ในช่วงเวลาหนึ่ง จะเกิดเหตุการณ์ขึ้นได้ แค่เหตุการณ์เดียว จากทางเลือกที่มีทั้งหมด (มองภาพง่ายๆ เหมือนตอนเช้ามา เมื่อเราลืมตาขึ้นมา เราจะทำอย่างไร ? ระหว่าง จะลุกจากที่นอน หรือ จะนอนต่อ สมมุติ เราเลือกลุกจากที่นอน นั่นหมายความว่า เราไม่ได้นอนต่อ นั่นเอง ครับ)
 

โครงสร้างการทำงาน แบบทางเลือก มีทั้งหมด 3 รูปแบบ 

1) โครงสร้างการทำงาน แบบทางเลือก รูปแบบ IF...
2) โครงสร้างการทำงาน แบบทางเลือก IF...ELSE...
3) โครงสร้างการทำงาน แบบทางเลือก Case
 

 

โครงสร้างการทำงาน แบบทางเลือก รูปแบบ IF...
 

หลักการทำงาน

ถ้าเงื่อนไขเป็นจริง (True) จะไปทำงานทาง ฝั่งจริง (True) 
แต่ถ้าเงื่อนไขเป็นเท็จ (False) ก็จะไปทำงานทางเท็จ (False) ซึ่งทางเท็จ จะไม่มีการทำงานอะไรเลย

 

Flowchart


ตัวอย่าง

ตัวอย่างการเขียน Flowchart ด้วยโครงสร้างควบคุม แบบทางเลือก รูปแบบ IF... โดยเขียนเพื่อลำดับการทำงานของโปรแกรมที่เขียนด้วยภาษา C++
 

 

จาก Flowchart นี้ ลำดับการทำงาน จะเป็น ดังนี้

1) Start เริ่มต้นโปรแกรม
2) int b = 1; ทำการประกาศตัวแปร ชื่อ b เป็น ประเภทจำนวนเต็ม และ กำหนดค่าเริ่มต้นเป็น 1
3) b <= 2 ทำการตรวจสอบ เงื่อนไข ว่า ค่าในตัวแปร b มีค่า น้อยกว่าหรือเท่ากับ 2 หรือไม่ ถ้าจริง ไป 3.T.1) ถ้าเท็จ ไป 3.F.1)
3.T.1) cout << b; แสดงผล ข้อมูลที่เก็บไว้ใน ตัวแปร b แล้วไป 4)
3.F.1) ( ไม่มีคำสั่งใดเพราะฉะนั้นไป 4) )
4) Stop จบการทำงานของโปรแกรม

 


 

โครงสร้างการทำงาน แบบทางเลือก รูปแบบ IF...ELSE...
 

หลักการทำงาน

ถ้าเงื่อนไขเป็นจริง (True) จะไปทำงานทาง ฝั่งจริง (True) 
แต่ถ้าเงื่อนไขเป็นเท็จ (False) ก็จะไปทำงานทางเท็จ (False) 

 

Flowchart


ตัวอย่าง

ตัวอย่างการเขียน Flowchart ด้วยโครงสร้างควบคุม แบบทางเลือก รูปแบบ IF... ELSE... โดยเขียน Flowchart เพื่อลำดับการทำงานของอุปกรณ์ทางอิเล็กทรอนิกส์ระบบหนึ่ง ซึ่งประกอบด้วย LED 1 , LED 2

 

 

จาก Flowchart นี้ ลำดับการทำงาน จะเป็น ดังนี้

1) Start เริ่มต้นโปรแกรม
2) set s_1 = 1; ทำการประกาศตัวแปร ชื่อ set_1 และ กำหนดค่าเริ่มต้นเป็น 1
3) set_1 = 1 ทำการตรวจสอบ เงื่อนไข ว่า ค่าในตัวแปร s_1 มีค่า เท่ากับ 1 หรือไม่ ถ้าจริง ไป 3.T.1) ถ้าเท็จ ไป 3.F.1)
3.T.1) Open Led_1; ทำการเปิดหลอด LED ดวงที่ 1 แล้วไป 4)
3.F.1) Open Led_2; ทำการเปิดหลอด LED ดวงที่ 2 แล้วไป 4)
4) Stop จบการทำงานของโปรแกรม

 

 

โครงสร้างการทำงาน แบบทางเลือก รูปแบบ CASE
 

หลักการทำงาน

ตรวจสอบค่าใน ตัวแปร ว่าตรงกับ กรณีใด 
ถ้าใช่ ก็เริ่มทำงาน ตามชุดคำสั่งในกรณีนั้น
ถ้าไม่ ก็ไปตรวจสอบกับกรณีถัดไป

 

Flowchart
 


ตัวอย่าง

ตัวอย่างการเขียน Flowchart ด้วยโครงสร้างควบคุม แบบทางเลือก รูปแบบ CASE โดยเขียน Flowchart เพื่อลำดับการทำงานของอุปกรณ์ทางอิเล็กทรอนิกส์ระบบหนึ่ง ซึ่งประกอบด้วย LED 1 , LED 2 , LED 3 , LED 4 , Input Button

 


 

จาก Flowchart นี้ ลำดับการทำงาน จะเป็น ดังนี้

1) Start เริ่มต้นโปรแกรม
2) set s_1 = Input Button; ทำการประกาศตัวแปร ชื่อ set_1 และ มีการรับค่า Input จาก Button มาเก็บในตัวแปร set_1
3) set_1 ทำการตรวจสอบ เงื่อนไข ว่า ค่าในตัวแปร s_1 มีค่า เท่ากับ...
  3.Case1) CASE 1 ทำการตรวจสอบ เงื่อนไข ว่า ค่าในตัวแปร s_1 มีค่า เท่ากับ 1 หรือไม่ถ้าใช่ ไป 3.Case1.1) ถ้าไม่ไป 3.Case2)
  3.Case1.1) Open Led_1; ทำการเปิดหลอด LED ดวงที่ 1 แล้วไป 4)
  3.Case2) CASE 2 ทำการตรวจสอบ เงื่อนไข ว่า ค่าในตัวแปร s_1 มีค่า เท่ากับ 2 หรือไม่ถ้าใช่ ไป 3.Case2.1) ถ้าไม่ไป 3.Case3)
  3.Case2.1) Open Led_2; ทำการเปิดหลอด LED ดวงที่ 2 แล้วไป 4)
  3.Case3) CASE 3 ทำการตรวจสอบ เงื่อนไข ว่า ค่าในตัวแปร s_1 มีค่า เท่ากับ 3 หรือไม่ถ้าใช่ ไป 3.Case3.1) ถ้าไม่ไป 3.CaseDefault)
  3.Case3.1) Open Led_3; ทำการเปิดหลอด LED ดวงที่ 3 แล้วไป 4)
  3.CaseDefault) DEFAULT CASE ไป 3.CaseDefault.1)
  3.CaseDefault.1) Open Led_3; ทำการเปิดหลอด LED ดวงที่ 4 แล้วไป 4)
4) Stop จบการทำงานของโปรแกรม

 

เป็นยังไงบ้างครับ บทนี้ โครงสร้างการทำงาน แบบทางเลือก ยาวเลยทีเดียว แต่จำง่ายๆ ครับ ไม่มีอะไรมาก แค่ IF... , IF... ELSE... , CASE เท่านั้นครับ จะสังเกตได้ว่า ถ้าเราทำทางเลือกใดไปแล้ว ก็จะไม่สามารถไปทำอีกทางเลือกหนึ่งได้ ครับ

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

 

สิ่งที่คุณจะทำได้หลังจากอ่านบทความนี้
- คุณจะรู้จักกับ โครงสร้างควบคุม แบบทางเลือก (Sequence Control Statement)
- คุณจะรู้จักกับ โครงสร้างควบคุม แบบทางเลือก รูปแบบ IF...
- คุณจะรู้จักกับ โครงสร้างควบคุม แบบทางเลือก รูปแบบ IF... ELSE...
- คุณจะรู้จักกับ 
โครงสร้างควบคุม แบบทางเลือก รูปแบบ CASE
 

 

สำหรับน้องๆ คนไหนอยากเรียนรู้เรื่อง Flowchart ไวๆ อยากเริ่มต้นเขียนโปรแกรมได้ภายใน 1 วัน ! หรือ ที่ยังไม่เข้าใจโครงสร้างแบบ IF , IF... ELSE... , CASE หรือ นำไปใช้ไม่เป็น ทาง TUTORTONG สอนเขียนโปรแกรม มีคอร์ส Flowchart และ อัลกอริทึม สำหรับผู้เริ่มต้น สำหรับน้องๆ ที่สนใจครับผม สนใจคลิกดูรายละเอียดได้ที่นี่ครับ TUTORTONG คอร์ส Flowchart และ อัลกอริทึม รับรองจัดหนัก จัดเต็ม ครบทุกโครงสร้างการทำงาน แน่นอนครับ