While Loops
ความแตกต่างระหว่าง for กับ while ในบทเรียน Learn to Code 1
for i in 1 ...10 { moveForward() }
While Loops ใช้ในกรณีที่เราไม่รู้ว่าต้องทำซ้ำกี่ครั้ง แต่รู้ว่าเมื่อไหร่จะหยุดทำคำสั่ง เช่น จงเดินหน้าจนกว่าจะมีสิ่งกีดขวาง
while !isBlocked { moveForward() }
โครงสร้างของ while
while + สถานการณ์ที่ต้องทำซ้ำ + { ชุดคำสั่ง }
while แปลว่า ในขณะที่
สถานการณ์ที่ต้องทำซ้ำ เช่น ไม่มีสิ่งกีดขวาง หิว ง่วง เป็นต้น
{ ชุดคำสั่ง } เขียนชุดคำสั่งที่ต้องทำซ้ำในวงเล็บปีกกา
ตัวอย่างที่ 1
while !isBlocked {
moveForward()
}
ข้อควรระวัง! ถ้าไม่มีสิ่งกีดขวางใดเลย ตัวละครจะเดินหน้าไม่ยอมหยุด ดังนั้น หากระบุสถานการณ์ หรือ เงื่อนไขให้ทำซ้ำที่ไม่มีวันเป็นเท็จ โปรแกรมจะติดอยู่ในวังวนของ while ตลอดไป จนกว่าบางอย่างเช่น โปรแกรม หรือ อุปกรณ์ จะตายกันไปข้างนึง
ลองวิเคราะห์สถานการณ์ด้านล่างนี้ดูนะคะ
ตัวอย่างที่ 2
while isHuman { drinkAndEat }
คำแปล ในขณะที่ เป็นมนุษย์ จงดื่มและกิน
ตัวอย่างที่ 3
while isHungry { drinkAndEat }
คำแปล ในขณะที่ หิว จงดื่มและกิน
หมายเหตุ คำสั่งในตัวอย่างที่ 2 และ 3 เป็นสิ่งสมมุติซึ่งไม่มีในบทเรียน Learn to Code
-- ดีบี --