02 September 2020

Learn to Code 1 - บทที่ 6 While Loops

While Loops

รู้หรือไม่? นอกจาก For Loops แล้ว Swift ยังมีคำสั่ง While สำหรับสั่งให้โปรแกรมทำคำสั่งเดิมซ้ำหรือที่เรียกกันว่าการวนลูป (Loops) ด้วยนะ!


ความแตกต่างระหว่าง for กับ while ในบทเรียน Learn to Code 1


For Loops ใช้ในกรณีที่รู้ว่าต้องทำซ้ำกี่ครั้ง เช่น เดินหน้าหนึ่งก้าว 10 ครั้ง

for i in 1 ...10 { moveForward() }


While Loops ใช้ในกรณีที่เราไม่รู้ว่าต้องทำซ้ำกี่ครั้ง แต่รู้ว่าเมื่อไหร่จะหยุดทำคำสั่ง เช่น จงเดินหน้าจนกว่าจะมีสิ่งกีดขวาง

while !isBlocked { moveForward() }


โครงสร้างของ while

while สถานการณ์ที่ต้องทำซ้ำ { ชุดคำสั่ง }


while แปลว่า ในขณะที่

สถานการณ์ที่ต้องทำซ้ำ เช่น ไม่มีสิ่งกีดขวาง หิว ง่วง เป็นต้น 

{ ชุดคำสั่ง } เขียนชุดคำสั่งที่ต้องทำซ้ำในวงเล็บปีกกา


ตัวอย่างที่ 1 

while !isBlocked {

   moveForward()

}


คำแปล 1 ในขณะที่ ไม่มีสิ่งกีดขวาง จงเดินหน้า

คำแปล 2 เมื่อไม่มีสิ่งกีดขวาง จงเดินหน้า

คำแปล 3 จงเดินหน้าจนกว่าจะมีสิ่งกีดขวาง

ข้อควรระวัง! ถ้าไม่มีสิ่งกีดขวางใดเลย ตัวละครจะเดินหน้าไม่ยอมหยุด ดังนั้น หากระบุสถานการณ์ หรือ เงื่อนไขให้ทำซ้ำที่ไม่มีวันเป็นเท็จ โปรแกรมจะติดอยู่ในวังวนของ while ตลอดไป จนกว่าบางอย่างเช่น โปรแกรม หรือ อุปกรณ์ จะตายกันไปข้างนึง


ลองวิเคราะห์สถานการณ์ด้านล่างนี้ดูนะคะ


ตัวอย่างที่ 2

while isHuman { drinkAndEat } 

คำแปล ในขณะที่ เป็นมนุษย์ จงดื่มและกิน


ตัวอย่างที่ 3

while isHungrydrinkAndEat }

คำแปล ในขณะที่ หิว จงดื่มและกิน


หมายเหตุ คำสั่งในตัวอย่างที่ 2 และ 3 เป็นสิ่งสมมุติซึ่งไม่มีในบทเรียน Learn to Code



-- ดีบี --