while loop

شرح تفصيلي لحلقة while في Dart

تُستخدم حلقة while في Dart لتكرار تنفيذ جزء من الكود طالما كان الشرط المحدد صحيحًا (true). يتم استخدام while عندما لا تعرف مسبقًا عدد التكرارات، ولكن لديك شرط يجب التحقق منه قبل كل تكرار.


الصيغة العامة لحلقة while

while (condition) {
  // الكود الذي سيتم تنفيذه طالما أن الشرط صحيح
}
Dart
  • condition: الشرط الذي يتم التحقق منه قبل كل تكرار.
  • إذا كان condition يساوي true، فسيتم تنفيذ الكود داخل الحلقة.
  • إذا أصبح condition يساوي false، يتم إنهاء الحلقة.

مثال 1: طباعة الأرقام من 1 إلى 5

void main() {
  int i = 1;

  while (i <= 5) {
    print("القيمة الحالية لـ i هي: $i");
    i++; // زيادة قيمة i لمنع حدوث حلقة لا نهائية
  }
}
Dart

🔹 الإخراج:

القيمة الحالية لـ i هي: 1
القيمة الحالية لـ i هي: 2
القيمة الحالية لـ i هي: 3
القيمة الحالية لـ i هي: 4
القيمة الحالية لـ i هي: 5
Dart

✅ الحلقة تستمر طالما أن i أقل من أو تساوي 5.
✅ يتم زيادة i بعد كل تكرار لمنع حدوث حلقة لا نهائية.


مثال 2: العد التنازلي من 5 إلى 1

void main() {
  int i = 5;

  while (i >= 1) {
    print(i);
    i--; // تقليل i في كل تكرار
  }
}
Dart

🔹 الإخراج:

5
4
3
2
1
Dart

✅ هنا يتم تصغير i في كل تكرار حتى يصل إلى 1 ثم تنتهي الحلقة.


استخدام while مع شرط إدخال المستخدم

يمكن استخدام while لجعل المستخدم يُدخل قيمة صحيحة قبل الخروج.

مثال 3: طلب إدخال كلمة المرور بشكل متكرر حتى تكون صحيحة

import 'dart:io';

void main() {
  String password = "";

  while (password != "1234") {
    stdout.write("أدخل كلمة المرور: ");
    password = stdin.readLineSync()!;
  }

  print("تم تسجيل الدخول بنجاح!");
}
Dart

🔹 الحلقة تستمر حتى يقوم المستخدم بإدخال كلمة المرور الصحيحة (1234).
🔹 عند إدخال كلمة المرور الصحيحة، تخرج الحلقة وتظهر رسالة نجاح.


استخدام break و continue مع while

مثال 4: استخدام break لإنهاء الحلقة عند العثور على الشرط

void main() {
  int i = 1;

  while (i <= 10) {
    if (i == 5) {
      print("تم الوصول إلى 5 وإيقاف الحلقة");
      break; // إنهاء الحلقة عند i == 5
    }
    print(i);
    i++;
  }
}
Dart

🔹 الإخراج:

1
2
3
4
تم الوصول إلى 5 وإيقاف الحلقة
Dart

✅ عند الوصول إلى i == 5، يتم تنفيذ break وإنهاء الحلقة فورًا.


مثال 5: استخدام continue لتخطي قيمة معينة

void main() {
  int i = 0;

  while (i < 5) {
    i++;

    if (i == 3) {
      print("تم تخطي الرقم 3");
      continue; // يتجاوز هذا التكرار
    }

    print(i);
  }
}
Dart

🔹 الإخراج:

1
2
تم تخطي الرقم 3
4
5
Dart

✅ عندما يصل i إلى 3، يتم تخطي هذا التكرار فقط باستخدام continue، لكن الحلقة تستمر.


الحلقة do-while في Dart

هناك نوع آخر من الحلقات وهو do-while، ويختلف عن while العادية في أنه يتم تنفيذ الكود مرة واحدة على الأقل حتى لو كان الشرط false.

الصيغة العامة لـ do-while

do {
  // الكود الذي سيتم تنفيذه
} while (condition);
Dart
  • يتم تنفيذ الكود مرة واحدة على الأقل ثم يتم التحقق من الشرط.
  • إذا كان الشرط true، تستمر الحلقة، وإذا كان false، تتوقف.

مثال 6: الفرق بين while و do-while

استخدام while العادي:

void main() {
  int i = 10;

  while (i < 5) {
    print("لن يتم تنفيذ هذا لأن i = 10 وهو ليس أقل من 5");
  }
}
Dart

🔹 الإخراج:

scssنسختحرير(لا يوجد أي إخراج لأن الشرط خاطئ من البداية)

✅ هنا، لم يتم تنفيذ الحلقة أبدًا لأن i = 10 وهي غير أصغر من 5.


استخدام do-while لتنفيذ الكود مرة واحدة على الأقل:

void main() {
  int i = 10;

  do {
    print("تم تنفيذ هذا الكود مرة واحدة رغم أن i = 10");
  } while (i < 5);
}
Dart

🔹 الإخراج:

نسختحريرتم تنفيذ هذا الكود مرة واحدة رغم أن i = 10

حتى لو كان الشرط خاطئًا من البداية، فإن الكود يتم تنفيذه مرة واحدة على الأقل.


الفرق بين while و do-while

المقارنةwhiledo-while
متى يتم تنفيذ الكود؟عندما يكون الشرط صحيحًا من البدايةيتم تنفيذ الكود مرة واحدة على الأقل ثم يتم التحقق من الشرط
عدد مرات التكرار الأدنىقد لا يتم تنفيذ الحلقة أبدًايتم تنفيذ الحلقة مرة واحدة على الأقل
التطبيقات الشائعةالتكرار بشرط معروف مسبقًاتنفيذ الكود أولًا ثم التحقق من الشرط لاحقًا

خلاصة

while تُستخدم عندما لا تعرف عدد التكرارات مسبقًا ولكن لديك شرط للتحقق منه قبل كل تكرار.
do-while تُستخدم إذا كنت تريد تنفيذ الكود مرة واحدة على الأقل قبل التحقق من الشرط.
✅ يمكن استخدام break لإنهاء الحلقة و continue لتخطي تكرار معين.

🚀 الآن لديك فهم قوي لحلقة while في Dart! 🎯