
คำสั่ง For loop

อัปเกรดสำหรับเนื้อหาเพิ่มเติม
True or false? There are several ways to repeat code.
ลีน่าได้ตั้งโปรแกรมให้หุ่นยนต์ของเธอ เพื่อมอบช็อคโกแลตให้มาเรียและลีออน มาเรียได้ปรับปรุงโปรแกรมของลีน่า ซึ่งตอนนี้มันไม่จำเป็นต้อง รีสตาร์ทใหม่ซ้ำๆ อีกแล้ว นี่คือสิ่งที่เป็นลักษณะของรหัสเทียม ตราบใดที่มีช็อคโกแลตอยู่ในกล่อง หรือตราบใดที่ตัวแปรช็อคโกแลตมากกว่า 0 หุ่นยนต์จะให้ช็อคโกแลตกับ มาเรียและลีออน มาเรียได้ใช้คำสั่ง 'while' loop ลีน่าก็รู้วิธีที่จะทำให้รหัสนี้ดีขึ้น เนื่องจากลีน่ารู้ว่ากล่องช็อคโกแลต ที่เพิ่งเปิดใหม่มีช็อคโกแลต 10 ชิ้น ดังนั้นข้อมูลนี้จึงไม่จำเป็น ต้องป้อนเข้าไปทุกครั้ง เธอสามารถใช้การคำสั่งวนลูป ประเภทอื่นแทนได้ ซึ่งมันจะทำซ้ำได้ 10 ครั้ง การวนซ้ำชนิดนี้จะทำซ้ำจากค่าเริ่มต้น ไปจนถึงค่าสุดท้ายของตัวแปร คำสั่งภายในลูปจะถูกดำเนินการ เมื่อตัวแปรอยู่ระหว่าง ค่าเริ่มต้นและค่าสุดท้ายเท่านั้น เธอใช้ชื่อตัวแปรว่า 'i' ในการทำซ้ำ รหัสเทียมของลีน่าเป็นแบบนี้ สำหรับค่าทั้งหมดของตัวแปร 'i' จากค่าเริ่มต้นไปถึงค่าสุดท้าย คำสั่งภายในลูปควรถูกดำเนินการ ในคำสั่ง For ของลูป ลีน่าตั้งค่าเริ่มต้นเป็น 1 เมื่อลูปเริ่มต้นขึ้น ตัวแปร 'i' มันจะมีค่าเป็น 1 เธอเขียนจาก 1 เธอต้องการให้คำสั่งในลูป ดำเนินการ 10 ครั้ง ดังนั้น ลีน่าจึงเขียน 10 ไว้ เป็นค่าสุดท้าย ทุกๆครั้งที่คำสั่งในลูปทำซ้ำ ตัวแปร 'i' จะเพิ่มเป็น 1 ดังนั้น ลีน่าจึงกำหนดขนาดของแต่ละระยะ ในรหัสของเธอเป็น 1 นี่คือการวนลูป ด้วยคำสั่ง 'for' ซึ่งใช้ดำเนินการ กับทุกค่า จากค่าเริ่มต้นคือ 1 ไปจนถึงค่าสุดท้ายคือ 10 เมื่อโปรแกรมใช้คำสั่ง while loop คำสั่งอย่างหนึ่งภายในลูปจะถูกกำหนดขึ้น ซึ่งลดจำนวนช็อคโกแลตลงครั้งละ 1 ชิ้น แต่เมื่อลีน่าใช้คำสั่ง for loop คำสั่งดังกล่าวก็ไม่จำเป็นอีกต่อไป เธอสามารถลบส่วนนี้ทิ้งได้ รหัสเทียมแบบใหม่จะมีลักษณะแบบนี้ ลีน่าทดสอบคำสั่ง for loop ที่เธอเขียนขึ้น เมื่อ for loop เริ่มต้นขึ้น และตัวแปร 'i' มีค่าเป็น 1 คำสั่งในการวนซ้ำจะดำเนินการ และโปรแกรมจะกลับไปที่ด้านบนสุดของลูป ตอนนี้คำสั่งในส่วนนี้จะเริ่มดำเนินการ ซึ่งเพิ่มค่าของตัวแปร 'i' ไปหนึ่งระยะ 1 บวก 1 เป็น 2 2 ยังคงอยู่ระหว่าง 1 ถึง 10 คำสั่งในลูปดำเนินการอีกครั้ง และโปรแกรมก็กลับไปที่ด้านบนสุดของลูป และอีกครั้งที่ค่าของ 'i' เพิ่มขึ้น 1 ตอนนี้ค่าของมันคือ 3 3 เป็นค่าหนึ่งของ 'i' จาก 1 ถึง 10 การวนลูปยังคงดำเนินต่อไป เมื่อตัวแปร 'i' มีค่าเท่ากับ 4 5, 6, 7, 8, 9 และ 10 เมื่อ 'i' เปลี่ยนค่าเป็น 11 ซึ่งเป็นค่าของตัวแปรที่ไม่ได้อยู่ ในค่าทั้งหมดจาก 1 ถึง 10 ลูปจึงสิ้นสุดลงและโปรแกรม ก็จะดำเนินการต่อ ในกรณีนี้ไม่มีคำสั่งเพิ่มเติมใดเหลืออยู่ โปรแกรมจึงสิ้นสุดลง ลองเปรียบเทียบคำสั่ง 'for' กับ 'while' ในลูปดูสิ ลีน่าได้แทนคำสั่ง 3 คำสั่ง ด้วยคำสั่งเดียว คำสั่งที่น้อยลงจะทำให้รหัส อ่านได้ง่ายขึ้น และรหัสนั้นจะดูสวยขึ้น