![]() | |||||
พื้นฐานปาสคาล | พื้นฐาน rapidq | เว็บภาษาไทย | เว็บภาษาอังกฤษ |
Case ... Ofโครงสร้าง case of เป็นโครงสร้างที่มักใช้กับโปรแกรมที่มีแขนงของการทำงาน หลายกรณี ผมขอยกตัวอย่าง ด้วย if ก่อนนะครับ หากผมต้องการแสดงผลเกรดวิชาภาษาอังกฤษ ของนักเรียนซึ่งมี 5 เกรดคือ A B C D และ F เมื่อป้อนคะแนนของนักเรียน.. ผมจะทำดังนี้ครับ
แต่ในกรณีเช่นนี้ ควรจะใช้ CASE OF มากกว่า เพราะโปรแกรม มีแขนงการทำงานหลายกรณี
ในกรณีที่คำสั่งมากกว่า 2 คำสั่ง ก็จะต้อง ใช้ begin .. end ; ล้อมไว้ แบบเดียวกับ การใช้ if - then เลยครับ
ส่วนการกำหนดการทำงานให้กับกรณีอื่นๆ ( ELSE ) ก็มีให้ใช้เหมือนกับ if - then เช่นเดียวกันครับ
เหมือนกับตอนที่ใช้ else กับ if - then เลยใช่ไหมครับ แต่ผมเคยทดสอบดูกับ turbopascal แล้ว ปรากฎว่า ถึงผมจะเขียน end แบบมี ; ( semi-colon ) โปรแกรมก็ compile ผ่านได้เหมือนกัน ดังนั้นจะใช้แบบไหนก็คงได้กระมังครับ
การใช้ loop เป็นเรื่องที่ต้องระวังนิดนึง ตัวอย่างเช่น loop REPEAT UNTIL ถ้าหากเราวางเงื่อนไข ที่ไม่สามารถเป็นจริง เราก็จะได้ loop ที่ทำงานซ้ำๆ กันไปโดยหยุดไม่ได้ แต่ไม่เป็นไรครับ ผมจะแนะนำ การ หยุด loop แบบเฉพาะหน้าให้ก่อน วิธีแรก ให้กดปุ่ม Ctrl+Break เมื่อกดแล้ว โปรแกรมก็จะหยุดการทำงาน แต่ถ้าหาปุ่ม break ไม่เจอ(เครื่องผมปุ่ม break เขียนว่า pause Break) หรือกดปุ่มตามวิธีแรกแล้ว โปรแกรมยังไม่หยุด ต้องมาใช้วิธีที่สอง แต่วิธีนี้จะเสี่ยงกับ source code ที่พิมพ์ไว้หายไปวิธีที่สอง
ถ้า โปรแกรมเราไม่ยอมหยุดและต้องปิดลงไปด้วย end task ละก็.. โปรแกรมที่เขียนไว้นั้นจะหายไปครับ
ไม่ต้องกังวลนะครับว่าข้อมูลคุณใน harddisk จะหายหมด เพราะจากที่ได้ยินได้ฟังมา และโดยประสบการณ์ของผม ที่หัดเขียนมาประมาณ 6 เดือนแล้ว การหัดเขียนโปรแกรมในระดับพื้นฐาน ผมยังไม่เคยพบปัญหาที่รุนแรงไปกว่า ข้อมูลไฟล์ *.pas ที่ไม่ได้ save สูญหาย ไปเพราะการ run program ที่ loop ไม่หยุดเพียงไฟล์เดียวเท่านั้นเอง REPEAT UNTILเอาล่ะครับ มาต่อกันในเรื่อง looploop แรกที่จะมาทำความรู้จักกัน ได้แก่ REPEAT UNTIL
ตัวอย่างการใช้ loop REPEAT UNTIL
การทำงาน ของ loop
สำหรับอธิบายกันมากกว่าเพราะสั้นและสะดวกในการอ่าน ![]() ไม่ต้องตกใจว่า เป็นแผนภูมิการเขียน loop แบบใหม่ นะครับ เพราะผมเขียน แผนภาพ แบบที่เขาใช้กันไม่เป็นนั่นเอง..+_+ ก็เลยเขียนแบบนี้ไง เมื่อคุณต้องการ เขียนโปรแกรมสักงานชิ้นหนึ่ง คุณอาจจะออกแบบก่อน ที่จะพิมพ์ โดยเขียนแผนภาพแสดงการทำงาน ที่เรียกว่า flow chart นี่ จะช่วยให้ลดจำนวนครั้งหรือระยะเวลาในการพิมพ์ ตรวจทานและแก้ไขได้มาก คำอธิบาย ผมได้เขียนไปค่อนข้างยาวเพราะผมรู้สึกว่า การใช้คำอธิบายสั้นๆ อาจจะไม่เพียงพอ สำหรับบางคนที่ต้องการ ทราบถึงขั้นตอนการทำงาน ในแต่ละขั้นของโปรแกรม แต่บางทีมันจะทำให้คุณสับสน.. เรามาให้ความสนใจกับอย่างต่อไปดีกว่าครับ
หากคุณ ลองเพิ่ม โพรซีเจอร์ CLRSCR ; วางไว้ข้างหลัง repeat คุณจะได้โปรแกรมที่ดูดีขึ้นครับ
ต่อไปมารู้จัก function Keypressed กันครับ ฟังค์ชั่นนี้ เป็นฟังค์ชั่น boolean ที่จะมีค่าเป็นเท็จ ในขณะที่เรายังไม่กดปุ่ม keyboard ใดๆ และจะมีค่าเป็นจริง ต่อเมื่อเรากด ปุ่มใดๆ
สำหรับ ตัวแปรชนิด boolean และฟังค์ชั่นผมจะอธิบายในโอกาสต่อไป ยังมีเนื้อหาบางอย่าง ที่ควรศึกษาอีก สำหรับ repeat until กับ case of แต่จะเพิ่มในการ update คราวหน้าครับ |