حلقة for
تُستخدم حلقة for غالبًا في الحالات التي يكون فيها عدد التكرارات معلومًا مسبقًا، وهي تسمح بكتابة التهيئة، والشرط، والتحديث في سطر واحد.
الصياغة (Syntax)
for (initialization; condition; update)
statement;مثال: العدّ التنازلي
// countdown using a for loop
#include <iostream>
using namespace std;
int main() {
for (int n = 10; n > 0; n--) {
cout << n << ", ";
}
cout << "liftoff!\n";
}الناتج:
10, 9, 8, 7, 6, 5, 4, 3, 2, 1, liftoff!
كيف تعمل حلقة for؟
- التهيئة (Initialization): تُنفَّذ مرة واحدة قبل بداية الحلقة، مثل:
int n = 10;. - الشرط (Condition): يُفحَص قبل كل تكرار، مثل:
n > 0. - التحديث (Update): يُنفَّذ بعد كل تكرار، مثل:
n--. - الامر (Statement): تُنفَّذ إذا كان الشرط صحيحًا، مثل:
cout << n << ", ";.
أمثلة
الأجزاء الثلاثة في رأس حلقة for اختيارية، لكن الفواصل المنقوطة (;) إلزامية:
for (; n < 10; ) // بدون تهيئة أو تحديث
for (; n < 10; ++n) // مع تحديث فقط
Caution
إهمال الشرط تمامًا يجعل الحلقة لا نهائية.
حلقة for المبنية على المجال (Range-Based for)
تُستخدم للتكرار تلقائيًا على كل عنصر في مجال (مثل المصفوفات أو السلاسل النصية):
#include <iostream>
#include <string>
using namespace std;
int main() {
string str {"Hello!"};
for (char c : str)
cout << "[" << c << "]";
cout << '\n';
}الناتج:
[H][e][l][l][o][!]
يمكن استخدام الكلمة auto لجعل المترجم يحدّد نوع العنصر تلقائيًا، وتكون النتيجة نفسها:
for (auto c : str)
cout << "[" << c << "]";