while-Loop (Control Structure 2) — แบบฝึกทบทวน
. . .
Note
ครอบคลุม: การทำซ้ำ · while · ส่วนประกอบ (init/condition/update) · break · continue ทบทวนเนื้อหาเต็มได้ที่ Module 6 👈
เลือกคำตอบที่ถูกต้อง — เฉลยจะปรากฏเมื่อกดถัดไป
ลูป while จะทำงานวนซ้ำตราบเท่าที่เงื่อนไขเป็นค่าใด?
A. True
B. False
C. 0
Tip
ตอบ: A — วนทำงานขณะเงื่อนไขเป็น True และออกเมื่อเป็น False
ส่วนประกอบ 3 ส่วนของการวนลูปคือข้อใด?
A. start, stop, step
B. init, condition, update
C. if, elif, else
Tip
ตอบ: B — กำหนดค่าเริ่มต้น (init) · ทดสอบเงื่อนไข (condition) · ปรับปรุงค่า (update)
ถ้า ลืม update ตัวแปรเงื่อนไขในลูป while จะเกิดอะไร?
A. ลูปไม่ทำงาน
B. ลูปวนไม่รู้จบ (infinite loop)
C. error ทันที
Important
ตอบ: B — เงื่อนไขไม่มีวันเป็น False → infinite loop
พิมพ์อะไร?
A. 10
B. ไม่พิมพ์อะไรเลย
C. วนไม่จบ
Important
ตอบ: B — เงื่อนไข 10 < 5 เป็น False ตั้งแต่แรก → ไม่เข้าลูปเลย
คำสั่ง break ทำอะไร?
A. ข้ามไปรอบถัดไป
B. ออกจากลูปทันที
C. เริ่มลูปใหม่
Tip
ตอบ: B — break ออกจากลูปทันที (ไม่ทำรอบที่เหลือ)
คำสั่ง continue ทำอะไร?
A. ข้ามคำสั่งที่เหลือ ไปเริ่มรอบถัดไป
B. ออกจากลูป
C. หยุดโปรแกรม
Tip
ตอบ: A — continue ข้ามไปตรวจเงื่อนไขรอบถัดไปทันที
พิมพ์อะไร?
A. 1 2 3
B. 1 2 3 4
C. 0 1 2
Tip
ตอบ: A — เริ่ม i=1 วนพิมพ์จนถึง i=3 (เมื่อ i=4 เงื่อนไขเท็จ → ออก)
while True: จะหยุดได้อย่างไร?
A. หยุดเองอัตโนมัติเมื่อครบ 1,000 รอบ
B. ต้องมี break ภายในลูป
C. ต้องเปลี่ยน True เป็นตัวแปร flag และตั้งเป็น False จากภายนอกลูป
Important
ตอบ: B — while True วนไม่จบ ต้องใช้ break (เช่น เมื่อพบเงื่อนไขที่ต้องการ) จึงจะออก
เติมโค้ดในช่อง ____ แล้วกด Run
พิมพ์เลข 1 ถึง 5 ด้วย while
หา ผลรวม ของเลข 1 ถึง 5
นับ ถอยหลัง จาก 5 ถึง 1
ใช้ break หยุดเมื่อเจอค่าแรกที่ มากกว่า 10
ใช้ continue พิมพ์เฉพาะ เลขคี่ จาก 1 ถึง 6
พิมพ์ สูตรคูณแม่ 2 (2×1 ถึง 2×5)
โค้ดจะพิมพ์อะไร? — ทายก่อน แล้วกดถัดไปดูเฉลย
Tip
ผลลัพธ์: 3 2 1 — วนพิมพ์ขณะ i > 0 แล้วลดทีละ 1 (เมื่อ i=0 เงื่อนไขเท็จ → ออก)
Important
ผลลัพธ์: 1 3 5 — continue ข้ามการ print เมื่อ i เป็นเลขคู่ → พิมพ์เฉพาะเลขคี่
ไล่ค่าตัวแปรทีละรอบของลูป
เติมค่าหลังจบแต่ละรอบ
| รอบ | i (ก่อนเช็ค) |
total |
|---|---|---|
| 1 | 1 | ? |
| 2 | 2 | ? |
| 3 | 3 | ? |
Tip
| รอบ | total หลังรอบ |
|---|---|
| 1 | 1 |
| 2 | 3 |
| 3 | 6 |
หลังรอบที่ 3 i กลายเป็น 4 → 4 <= 3 เท็จ → ออกจากลูป · total = 6
โค้ดผิดตรงไหน — ทำไม
โปรแกรมพิมพ์ 1 ไม่หยุด — ผิดตรงไหน?
Important
ผิด: ลืม update i → เงื่อนไข i <= 5 เป็นจริงตลอด → infinite loop แก้: เพิ่ม i += 1 ในลูป
ใช้ while กับกระบวนการที่ทำซ้ำจนถึงเกณฑ์
ใช้กี่รอบถึงเต็ม (≥ 100 L)?
Important
ผลลัพธ์: 4 — 30 → 60 → 90 → 120 (รอบที่ 4 ทะลุ 100 แล้วจึงหยุด)
เติมโค้ดสะสมพลังงาน ครั้งละ 10 J จนครบ 5 รอบการวัด
กี่รอบจึงหมด?
Important
ผลลัพธ์: 4 — 100 → 75 → 50 → 25 → 0 (รอบที่ 4 ประจุเหลือ 0 แล้วหยุด)
Algorithm จริง — ใช้ % และ // แกะตัวเลขทีละหลัก
1234 → 4321 เติม operator แกะหลักสุดท้ายด้วย % แล้วตัดออกด้วย //
a สุดท้ายเป็นเท่าไร?
Important
ผลลัพธ์: 12 — วิธี Euclid: (48,36) → (36,12) → (12,0) แล้วหยุด → ห.ร.ม. = 12
ไม่มี ____ ให้เติม · เลือกเงื่อนไขจบลูป + วางส่วนประกอบ (init/condition/update) เอง
บวกเลขทุกหลักของ n ซ้ำ ๆ จนเหลือเลขหลักเดียว เช่น 9875 → 29 → 11 → 2 แล้วพิมพ์ผลสุดท้าย
คิดก่อน: ต้องใช้ลูป ซ้อน — ลูปนอกวนจนกว่า n จะเหลือหลักเดียว (n >= 10) · ลูปในบวกเลขทีละหลักด้วย % 10 และ // 10
กฎ: ถ้า n คู่ → n // 2 · ถ้า คี่ → 3*n + 1 · ทำซ้ำจนกว่า n จะเป็น 1 แล้วนับว่าใช้ กี่ก้าว
คิดก่อน: เราไม่รู้ล่วงหน้าว่าต้องวนกี่รอบ → ต้องเลือก while (ไม่ใช่ for) · อย่าลืมตัวนับ steps
ทบทวนเนื้อหาเต็มได้ที่ Module 6
🏠 259201 — Module 6 ทบทวน | ภาควิชาวิศวกรรมคอมพิวเตอร์ คณะวิศวกรรมศาสตร์ มหาวิทยาลัยเชียงใหม่