ทะลวงขีดจำกัด! สั่งงานให้ฉลาดขึ้นด้วย Loop และ If-Else
สมมติว่าเราอยากสั่งให้ตัวละครเดิน 100 ก้าว ถ้าเราต้องลากบล็อก "เดินหน้า" มาต่อกัน 100 อัน คงเมื่อยมือแย่เลยใช่ไหมครับ? โปรแกรมเมอร์จึงคิดค้น "การทำซ้ำ (Loop)" ขึ้นมา ซึ่งอยู่ในหมวดคำสั่ง สีส้ม (Control) ครับ
เวลาเราเล่นเกม ถ้าเราเดินชนศัตรู เลือดเราจะลด แต่ถ้าเราเก็บเหรียญ คะแนนเราจะเพิ่ม... นี่คือการทำงานของ "เงื่อนไข (Condition)" ครับ ใน Scratch เราจะใช้บล็อกที่มีรูปร่างเหมือนปากจระเข้ อ้าปากรอรับคำสั่ง:
โปรแกรมจะเช็คว่าสิ่งที่เราตั้งไว้ "เป็นจริง" หรือไม่ ถ้าจริง ถึงจะยอมทำตามคำสั่งที่อยู่ข้างในปากจระเข้
แบบมีทางเลือก 2 ทาง! เช่น ถ้าสอบผ่าน ให้แสดงคำว่า "ดีใจด้วย" มิฉะนั้น (สอบตก) ให้แสดงคำว่า "พยายามใหม่นะ"
เขียนโค้ดแล้วตัวละครไม่ยอมเดิน? หรือเดินทะลุกำแพง? อาการเหล่านี้เราเรียกว่าเกิด "บั๊ก (Bug)" หรือข้อผิดพลาดในโปรแกรมครับ หน้าที่ของเราคือต้องทำ Debugging (การไล่หาและแก้ไขข้อผิดพลาด) โดยค่อยๆ อ่านโค้ดที่เราต่อไว้ทีละบรรทัดว่าเราเรียงลำดับผิด หรือใส่เงื่อนไขผิดตรงไหน การแก้บั๊กได้ด้วยตัวเองคือสกิลขั้นเทพของโปรแกรมเมอร์เลยนะ!
เรามาใช้ "Loop" และ "เงื่อนไข" ทำให้เจ้าแมวเดินไปมาบนเวที พอชนขอบจอแล้วให้เด้งกลับกันเถอะ!
วัดระดับความเข้าใจเรื่องเงื่อนไขและลูป!
ข้อที่ 1: บล็อกคำสั่งใดที่ช่วยให้เรา "ไม่ต้อง" ลากบล็อกเดิมๆ มาต่อซ้ำกันหลายๆ รอบ?
ข้อที่ 2: หากต้องการสร้างเกมทายรหัสผ่าน "ถ้ารหัสถูกให้เปิดประตู ถ้ารหัสผิดให้ส่งเสียงเตือน" ควรใช้บล็อกคำสั่งใด?
ข้อที่ 3: คำว่า "Debugging (ดีบักกิ้ง)" ในการเขียนโปรแกรมหมายถึงอะไร?