
1. for loop พื้นฐาน
for (การเริ่มต้น; เงื่อนไข; การเปลี่ยนแปลง) {
// คำสั่งที่จะทำซ้ำ
}
ตัวอย่าง:
for (int i = 0; i < 5; i++) {
std::cout << i << " ";
}
// ผลลัพธ์: 0 1 2 3 4
2. for loop แบบนับถอยหลัง
for (int i = 10; i > 0; i--) {
cout << i << " ";
}
// ผลลัพธ์: 10 9 8 7 6 5 4 3 2 1
3. for loop กับการกำหนดขั้นตอนเอง
for (int i = 0; i <= 10; i += 2) {
cout << i << " ";
}
// ผลลัพธ์: 0 2 4 6 8 10
4. for loop ที่มีหลายตัวแปร
for (int i = 0, j = 10; i < 5; i++, j--) {
cout << i << ":" << j << " ";
}
// ผลลัพธ์: 0:10 1:9 2:8 3:7 4:6
5. for loop ซ้อน for loop (Nested for loop)
for (int i = 0; i < 3; i++) {
for (int j = 0; j < 3; j++) {
cout << "(" << i << "," << j << ") ";
}
cout << endl;
}
// ผลลัพธ์:
// (0,0) (0,1) (0,2)
// (1,0) (1,1) (1,2)
// (2,0) (2,1) (2,2)
6. Range-based for loop (C++11 ขึ้นไป)
vector<int> numbers = {1, 2, 3, 4, 5};
for (int num : numbers) {
cout << num << " ";
}
// ผลลัพธ์: 1 2 3 4 5
7. for loop กับ iterator
vector<int> vec = {10, 20, 30, 40, 50};
for (auto it = vec.begin(); it != vec.end(); ++it) {
cout << *it << " ";
}
// ผลลัพธ์: 10 20 30 40 50
8. for loop ไม่มีเงื่อนไข (Infinite loop)
for (;;) {
// คำสั่งที่จะทำซ้ำไปเรื่อยๆ
// ต้องมีเงื่อนไขการหยุด (break) ภายในลูป
}
9. for loop กับ comma operator
for (int i = 0, j = 0; i + j < 10; i++, j += 2) {
cout << i << "+" << j << "=" << (i + j) << " ";
}
// ผลลัพธ์: 0+0=0 1+2=3 2+4=6 3+6=9
หมายเหตุ:
- สามารถใช้
break
เพื่อออกจาก loop ก่อนครบรอบ - สามารถใช้
continue
เพื่อข้ามการทำงานในรอบปัจจุบันและไปยังรอบถัดไป - ระวังการใช้ for loop แบบไม่มีที่สิ้นสุด (infinite loop) โดยไม่ตั้งใจ
- Range-based for loop ใช้งานง่ายและอ่านง่าย แต่ใช้ได้กับ C++11 ขึ้นไปเท่านั้น
- การใช้ auto ใน for loop กับ iterator ช่วยให้โค้ดยืดหยุ่นมากขึ้น