🔁 الدرس 5 من 13
الحلقات التكرارية
تكرار الكود بذكاء
حلقة for
حلقة
الهيكل:
for هي الأكثر استخداماً عندما تعرف عدد مرات التكرار مسبقاً.
الهيكل:
for (تهيئة; شرط; خطوة) { ... }
- التهيئة: تنفذ مرة واحدة في البداية
- الشرط: يُفحص قبل كل تكرار
- الخطوة: تنفذ بعد كل تكرار
PHP
<?php
// عد من 1 إلى 10
for ($i = 1; $i <= 10; $i++) {
echo "$i ";
}
echo "<br>";
// جدول الضرب
echo "<br>جدول ضرب 5:<br>";
for ($i = 1; $i <= 10; $i++) {
echo "5 × $i = " . (5 * $i) . "<br>";
}
// عد تنازلي
echo "<br>عد تنازلي: ";
for ($i = 10; $i >= 1; $i--) {
echo "$i ";
}
// حلقات متداخلة (Nested)
echo "<br><br>مثلث النجوم:<br>";
for ($i = 1; $i <= 5; $i++) {
for ($j = 1; $j <= $i; $j++) {
echo "★ ";
}
echo "<br>";
}
?>
الناتج المتوقع
1 2 3 4 5 6 7 8 9 10
جدول ضرب 5:
5 × 1 = 5
...
عد تنازلي: 10 9 8 7 6 5 4 3 2 1
مثلث النجوم:
★
★ ★
...حلقة while و do-while
while تكرر طالما الشرط صحيح. لا تحتاج أن تعرف عدد التكرارات مسبقاً.
do-while: الفرق الوحيد أن الكود ينفذ مرة واحدة على الأقل قبل فحص الشرط.
تحذير: احذر من الحلقة اللانهائية! تأكد دائماً أن الشرط سيصبح false في مرحلة ما.
PHP
<?php
// while: كلمات كلود
$word = 1;
$total = 0;
while ($total < 100) {
$total += $word * 2;
$word++;
}
echo "وصلنا لـ 100 بعد $word كلمة<br>";
// قراءة أرقام حتى الصفر (محاكاة)
$numbers = [7, 3, 9, 0]; // 0 = إيقاف
$i = 0;
$sum = 0;
while ($numbers[$i] != 0) {
$sum += $numbers[$i];
$i++;
}
echo "مجموع الأرقام: $sum<br>";
// do-while: ينفذ مرة على الأقل
$attempt = 0;
do {
$attempt++;
$password = ($attempt == 3) ? "secret" : "wrong";
} while ($password != "secret");
echo "نجح الدخول في المحاولة: $attempt";
?>
الناتج المتوقع
وصلنا لـ 100 بعد 8 كلمة
مجموع الأرقام: 19
nجح الدخول في المحاولة: 3foreach و break/continue
foreach مصممة خصيصاً للتعامل مع المصفوفات. أسهل وأوضح من for مع المصفوفات.
break: يوقف الحلقة تماماً.
continue: يتجاوز التكرار الحالي ويكمل للتالي.
PHP
<?php
// foreach مع مصفوفة مفهرسة
$fruits = ["تفاح", "موز", "برتقال", "عنب"];
echo "الفواكه:<br>";
foreach ($fruits as $fruit) {
echo "- $fruit<br>";
}
// foreach مع مصفوفة ترابطية
$student = [
"name" => "أحمد",
"grade" => 92,
"city" => "القاهرة"
];
echo "<br>بيانات الطالب:<br>";
foreach ($student as $key => $value) {
echo "$key: $value<br>";
}
// break: إيقاف عند إيجاد القيمة
$numbers = [3, 7, 2, 9, 4, 1];
echo "<br>البحث عن أول رقم > 8: ";
foreach ($numbers as $num) {
if ($num > 8) {
echo "وجدناه: $num";
break;
}
}
// continue: تجاوز الأرقام الزوجية
echo "<br>الأرقام الفردية: ";
for ($i = 1; $i <= 10; $i++) {
if ($i % 2 == 0) continue;
echo "$i ";
}
?>
الناتج المتوقع
الفواكه:
- تفاح
- موز
- برتقال
- عنب
بيانات الطالب:
name: أحمد
...
البحث عن أول رقم > 8: وجدناه: 9
الأرقام الفردية: 1 3 5 7 9🧠
اختبر فهمك — الحلقات التكرارية
5/5 للمتابعةالسؤال 1
ما الحلقة المناسبة عندما لا نعرف عدد مرات التكرار مسبقاً؟
السؤال 2
ما الفرق بين while و do-while؟
السؤال 3
ما دور كلمة continue داخل حلقة؟
السؤال 4
ما الحلقة المصممة خصيصاً لتكرار المصفوفات؟
السؤال 5
ما نتيجة: for($i=0;$i<3;$i++) echo $i; ؟