do while loop

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

تُستخدم حلقة do-while في Dart لتنفيذ الكود مرة واحدة على الأقل، ثم تستمر في التكرار طالما أن الشرط المحدد صحيح (true).

✅ الفرق الرئيسي بين do-while و while العادية هو أن do-while تضمن تنفيذ الكود مرة واحدة على الأقل، بغض النظر عن الشرط.


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

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

مثال 1: طباعة الأرقام من 1 إلى 5 باستخدام do-while

void main() {
  int i = 1;

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

🔹 الإخراج:

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

✅ الحلقة تنفذ الكود أولًا، ثم تستمر في التكرار طالما أن i <= 5.


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

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

void main() {
  int i = 10;

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

🔹 الإخراج:

(لا يوجد أي إخراج لأن الشرط خطأ من البداية)
Dart

✅ لم يتم تنفيذ الحلقة لأن i = 10، والشرط i < 5 غير صحيح.


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

void main() {
  int i = 10;

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

🔹 الإخراج:

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

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


مثال 3: طلب إدخال المستخدم حتى يُدخل قيمة صحيحة

import 'dart:io';

void main() {
  String password;

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

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

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


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

مثال 4: استخدام break لإنهاء الحلقة

void main() {
  int i = 1;

  do {
    print("القيمة الحالية لـ i هي: $i");

    if (i == 3) {
      print("إيقاف الحلقة عند i = 3");
      break; // إنهاء الحلقة عند i == 3
    }

    i++;
  } while (i <= 5);
}
Dart

🔹 الإخراج:

القيمة الحالية لـ i هي: 1
القيمة الحالية لـ i هي: 2
القيمة الحالية لـ i هي: 3
إيقاف الحلقة عند i = 3
Dart

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


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

void main() {
  int i = 0;

  do {
    i++;

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

    print(i);
  } while (i < 5);
}
Dart

🔹 الإخراج:

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

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


مقارنة بين while و do-while

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

خلاصة

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

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