รูปแบบลูป: for, while, do-while
วนซ้ำด้วยลูปคลาสสิกทั้งสามรูปแบบ และเลือกใช้ให้เหมาะกับสถานการณ์
รูปแบบลูป: for, while, do-while เป็นบทเรียน C++ Academy ฟรีบน CoddyKit นี่คือบทเรียนที่ 2 จากทั้งหมด 4 บทเรียน คุณสามารถอ่านบทเรียนทั้งหมดด้านล่างฟรี — จากนั้นลองปฏิบัติด้วยตัวคุณเองในเบราว์เซอร์พร้อมตัวแก้ไขโค้ดในตัวและติวเตอร์ AI ตลอด 24/7 บทเรียนนี้เป็นส่วนหนึ่งของเส้นทางการเรียน C++ Academy และความก้าวหน้าของคุณจะซิงค์ข้ามเว็บและแอป CoddyKit คอร์ส C++ Academy มีบทเรียนทั้งหมด 4 บทเรียน
ลูป for
ลูปแบบใช้ดัชนีที่เป็นรูปแบบคลาสสิก ใช้เมื่อทราบจำนวนรอบที่ต้องการแน่นอน
for (int i = 0; i < 10; ++i) {
std::cout << i << " ";
}โครงสร้างของลูป for
ประกอบด้วยสามส่วนคั่นด้วยเครื่องหมายอัฒภาค:
- การเริ่มต้น — ทำงานหนึ่งครั้งก่อนเริ่มลูป
- เงื่อนไข — ตรวจสอบก่อนการทำงานแต่ละรอบ
- การอัปเดต — ทำงานหลังการทำงานแต่ละรอบ
ส่วนใด ๆ สามารถเว้นว่างได้
การนับถอยหลัง
ลดค่าลงเพื่อวนซ้ำในลำดับย้อนกลับ โปรดตรวจสอบขอบเขตอย่างรอบคอบ
for (int i = 9; i >= 0; --i) {
std::cout << i << " ";
}ลูป while
วนซ้ำตราบใดที่เงื่อนไขเป็นจริง ใช้เมื่อจำนวนรอบขึ้นอยู่กับสถานะขณะทำงาน
int n = 100;
while (n > 1) {
std::cout << n << " ";
n /= 2;
}ลูป do-while
คล้ายกับ while แต่บล็อกคำสั่งจะทำงานอย่างน้อยหนึ่งครั้ง — เงื่อนไขจะถูกตรวจสอบที่ส่วนท้าย เหมาะสำหรับการตรวจสอบความถูกต้องของข้อมูลเข้า
int n;
do {
std::cout << "Enter 1-9: ";
std::cin >> n;
} while (n < 1 || n > 9);ลูปไม่สิ้นสุด
บางครั้งคุณอาจต้องการลูปที่ทำงานจนกว่าจะพบ break รูปแบบที่ใช้กันตามธรรมเนียมคือ:
for (;;) { /* ... */ } // C-style
while (true) { /* ... */ } // arguably clearerbreak: ออกจากลูปก่อนกำหนด
break จะหยุดลูปชั้นในสุดหรือ switch ทันที
for (int i = 0; i < n; ++i) {
if (a[i] == target) {
index = i;
break;
}
}continue: ข้ามไปยังรอบถัดไป
continue จะข้ามไปยังรอบถัดไปโดยไม่ทำงานส่วนที่เหลือของบล็อกคำสั่ง
for (int i = 1; i <= 100; ++i) {
if (i % 2 == 0) continue;
std::cout << i << " "; // print odd numbers
}ลูปที่ซ้อนกัน
ลูปสามารถซ้อนกันได้ แต่ break ของลูปชั้นในจะออกจากลูปชั้นในเท่านั้น หากต้องการความชัดเจน ให้ใช้ตัวแปรสถานะหรือแยกโค้ดออกเป็นฟังก์ชัน
การเลือกลูปที่เหมาะสม
แนวทางอย่างรวดเร็ว:
- ทราบจำนวนรอบ →
for - ทำงานจนกว่าเงื่อนไขจะเปลี่ยน →
while - ต้องทำงานอย่างน้อยหนึ่งครั้ง →
do-while - วนซ้ำในคอนเทนเนอร์ → for แบบอิงช่วง (บทเรียนถัดไป)
ข้อผิดพลาดแบบคลาดหนึ่งรอบ
ข้อผิดพลาดของลูปที่พบบ่อยที่สุดคือทำงานมากเกินไปหรือน้อยเกินไปหนึ่งรอบ เมื่อใช้ดัชนีกับอาร์เรย์ ควรใช้ < ร่วมกับ size() และตรวจสอบขอบเขตด้วยการเขียนทบทวนบนกระดาษหรือการทดสอบ
ตรวจสอบอย่างรวดเร็ว
ลูปใดรับประกันว่าจะทำงานอย่างน้อยหนึ่งครั้ง
สรุปทบทวน
เลือกใช้ for เมื่อทราบจำนวนรอบ ใช้ while สำหรับลูปที่ขับเคลื่อนด้วยเงื่อนไข และใช้ do-while เมื่อบล็อกคำสั่งต้องทำงานอย่างน้อยหนึ่งครั้ง ใช้ break และ continue เท่าที่จำเป็นเพื่อให้โค้ดชัดเจน
คำถามที่พบบ่อย
บทเรียน “รูปแบบลูป: for, while, do-while” ฟรีหรือไม่
ใช่ — ข้อความเต็มของ “รูปแบบลูป: for, while, do-while” ฟรีให้อ่านที่นี่บนเว็บ เพื่อปฏิบัติแบบโต้ตอบ (ตัวแก้ไขโค้ดในตัวและติวเตอร์ AI ตลอด 24/7) และปลดล็อคส่วนที่เหลือของคอร์ส C++ Academy ให้อัปเกรดเป็น CoddyKit PRO คอร์ส C++ Academy มีบทเรียนทั้งหมด 4 บทเรียน
คุณจะเรียนรู้อะไรในบทเรียน “รูปแบบลูป: for, while, do-while”
วนซ้ำด้วยลูปคลาสสิกทั้งสามรูปแบบ และเลือกใช้ให้เหมาะกับสถานการณ์ คุณปฏิบัติ C++ Academy ด้วยโค้ดที่ใช้งานได้จริงที่คุณเรียกใช้โดยตรงในเบราว์เซอร์ และติวเตอร์ AI ตลอด 24/7 ตอบคำถามของคุณขณะที่คุณไปผ่านบทเรียน
คุณต้องมีประสบการณ์ก่อนที่จะเริ่มเรียน C++ Academy หรือไม่
ไม่จำเป็นต้องมีประสบการณ์มาก่อน C++ Academy บน CoddyKit ออกแบบมาสำหรับผู้เริ่มต้นไปจนถึงผู้เรียนขั้นสูง คุณสามารถเริ่มต้นที่นี่หรือเริ่มจากตัวแรกและเรียนด้วยความเร็วของคุณเอง นี่คือบทเรียนที่ 2 จากทั้งหมด 4 บทเรียน
บทเรียน “รูปแบบลูป: for, while, do-while” ใช้เวลานานแค่ไหน
บทเรียน CoddyKit ส่วนใหญ่ใช้เวลาประมาณ 5–10 นาที แต่ละบทเรียนจึงสั้นและเป็นแบบโต้ตอบ คุณสามารถก้าวหน้าอย่างต่อเนื่องและกลับมาเรียนต่อจากตรงที่เพิ่งหยุดบนเว็บและแอปได้เลย
ฉันเขียนและรันโค้ดในบทเรียน C++ Academy นี้ได้ไหม
ได้ บทเรียน C++ Academy ทุกบทมีตัวแก้ไขโค้ดในตัว คุณจึงเขียนและรันโค้ดจริงได้เลยในเบราว์เซอร์ และได้รับข้อเสนอแนะจาก AI ในทันที — ไม่ต้องติดตั้งในเครื่องของคุณ
บทเรียนทั้งหมดในหลักสูตรนี้
- การแยกแขนง: if-else, นิพจน์สามส่วน, switch-case
- รูปแบบลูป: for, while, do-while
- ลูป for แบบอิงช่วงกับคอนเทนเนอร์
- การคืนค่าก่อนกำหนด break continue และ goto