Control structure part II Warattapop Chainate
คำสั่งแบบมีเงื่อนไข (Conditional statement) aka. Selection ใช้ควบคุมลำดับการทำงานของโปรแกรม ให้เลือกทำกลุ่มคำสั่งเพียงบางกลุ่ม โดยใช้เงื่อนไขเป็นตัวกำหนด
คำสั่งทำซ้ำ (Iteration statement) Iteration, repetition or loop เป็นวิธีการควบคุมลำดับการทำงานของโปรแกรมให้วนทำงานกับกลุ่มคำสั่งบางกลุ่มซ้ำๆ เรียกการทำงานแบบนี้ว่า การวนลูป กลุ่มคำสั่งที่ทำงานซ้ำๆ นี้เรียกว่า loop body มีคำส่วนควบคุมการวนลูป เรียกว่า ตัวแปรควบคุม (control variable) เพื่อควบคุมการทำซ้ำให้ได้จำนวนรอบตามที่ต้องการ While, for และ do_while (ภาษา Pascal ใช้ repeat-until)
Iteration (cont) คำสั่ง while
Iteration (cont) คำสั่ง for
Iteration (cont) คำสั่ง do-while (ภาษา C) และ repeat-until (ภาษา Pascal)
Iteration (cont) คำสั่ง break
โปรแกรมย่อย (Subprogram) aka. Routine กลุ่มของคำสั่งในโปรแกรมที่ถูกแยกออกเป็นโมดูลเพื่อทำหน้าที่เฉพาะอย่าง มีชื่อโมดูล และมีพารามิเตอร์ หรืออาร์กิวเมนต์ เพื่อใช้ในการติดต่อรับส่งค่าระหว่างโปรแกรมกับโมดูล โปรแกรมย่อย แบ่งออกเป็นสองประเภทคือ โปรแกรมย่อยที่มีการส่งค่ากลับ (function) โปรแกรมย่อยที่ไม่มีการส่งค่ากลับ (procedure) ในภาษา Pascal และ Ada มีการใช้ function และ procedure แต่ภาษา C/C++/Java ใช้ฟังก์ชันอย่างเดียว แต่ก็มีฟังก์ชันที่ไม่มีการส่งค่ากลับ (void) จะทำหน้าที่เสมือน procedure
Subprogram (cont) Procedures ในรูปแบบภาษา C และ Ada Functions มนรูปแบบภาษา C และ Ada
Subprogram (cont) การมีโปรแกรมย่อยในลักษณะของฟังก์ชันให้ใช้งาน ช่วยทำให้การเขียนโปรแกรมในรูปแบบ Recursion สามารถทำได้
การจัดการกรณียกเว้น (Exception handling) ข้อผิดพลาดที่อาจเกิดขึ้น: การระบุอินเด็กซ์ของอาร์เรย์อาจจะเกินขอบเขตเนื้อที่ของอาร์เรย์ การคำนวณของนิพจน์คณิตศาสตร์ อาจจะเกิดกรณีตัวหารมีค่าเป็นศูนย์ ฟังก์ชันที่คำนวณค่ารากที่สองอาจจะได้รับอากิวเมนต์ที่ค่าเป็นลบ การจัดสรรเนื้อที่หน่วยความจำขณะรัน ซึ่งโปรแกรมอาจเกิดกรณีเนื้อที่ว่างในหน่วยความจำมีไม่พอ เพื่อเพิ่มความน่าเชื่อถือมากขึ้น ภาษาคอมพิวเตอร์ที่ดี จะต้อง... ได้รับการออกแบบให้มีโครงสร้างคำสั่งที่ช่วยให้โปรแกรมเมอร์ สามารถระบุประเภทของเหตุผิดปกติต่างๆ สามารถสั่งการตรวจจับเหตุผิดปกติ สามารถกำหนดชุดคำสั่งให้ทำงานเมื่อเกิดเหตุผิดปกติแต่ละประเภท เรียกชุดคำสั่งนี้ว่า exception handler
Exception handling (cont) การเขียนโปรแกรมจะต้องแยกคำสั่งออกเป็นสองกลุ่ม ชุดคำสั่งที่ทำงานในกรณีปกติ ชุดคำสั่งที่ทำงานเมื่อมีเหตุผิดปกติ ภาษา Ada เป็นภาษาคอมพิวเตอร์ ภาษาแรกที่เริ่มกำหนดการจัดการกรณียกเว้นให้เป็นโครงสร้างส่วนหนึ่งของภาษา โดยกำหนดกรณียกเว้นไว้ 4 ประเภทได้แก่ Constraint_Error Program_Error Storage_Error Tasking_Error
Exception handling ตัวอย่างการเขียนภาษา Ada ภาษา C++ และ Java ใช้คำสั่ง try … catch เพื่อตรวจจับ และจัดการกรณีมีข้อยกเว้นเกิดขึ้น
Exception handler ตัวอย่าง ภาษา Java