بالنسبة لتعليمة while، إذا لم يتم استيفاء الشرط، فلا يمكن إدخال الحلقة. لكن في بعض الأحيان نحتاج إلى تنفيذها مرة واحدة على الأقل حتى لو لم يتم استيفاء الشروط.
حلقة do...while تشبه حلقة while، فيما عدا أن حلقة do...while سيتم تنفيذها مرة واحدة على الأقل.
افعل { // بيان الكود} while(تعبير منطقي);
يُطلق على عبارة do..while Loop أيضًا عبارة حلقة ما بعد الاختبار، كما تستخدم طريقة التنفيذ المتكررة الخاصة بها شرطًا للتحكم في ما إذا كان سيتم الاستمرار في تنفيذ العبارة بشكل متكرر. الفرق عن حلقة while هو أنها تنفذ أولاً بيان الحلقة مرة واحدة ثم تحدد ما إذا كان سيتم الاستمرار في التنفيذ أم لا. على سبيل المثال، لحساب مجموع كل الأعداد الصحيحة بين 1 و100، يمكنك أيضًا استخدام عبارة do...while Loop. الكود المحدد هو كما يلي:
int sum=0;int i=1;do{sum+=i;i++;} while (i<=100);System.out.println("مجموع جميع الأعداد الصحيحة بين 1 و100 هو:"+sum);
عملية تنفيذ عبارة do...while هي: أولاً قم بتنفيذ نص الحلقة مرة واحدة، ثم احكم على التعبير الشرطي إذا كانت قيمة التعبير الشرطي صحيحة، فاستمر في التنفيذ، وإلا فاقفز خارج الحلقة. بمعنى آخر، يتم تنفيذ نص الحلقة في عبارة do...while Loop مرة واحدة على الأقل.
ملاحظة: التعبير المنطقي يأتي بعد نص الحلقة، لذلك تم تنفيذ كتلة البيان قبل اكتشاف التعبير المنطقي. إذا تم تقييم التعبير المنطقي إلى صواب، فسيتم تنفيذ كتلة البيان حتى يتم تقييم التعبير المنطقي إلى خطأ.
مثال
اختبار الطبقة العامة { public static void main(String args[]){ int x = 10; do{ System.out.print("قيمة x : "+ x++); } while( x < 20 );
نتائج التجميع والتشغيل للمثال أعلاه هي كما يلي:
قيمة x : 10قيمة x : 11قيمة x : 12قيمة x : 13قيمة x : 14قيمة x : 15قيمة x : 16قيمة x : 17قيمة x : 18قيمة x : 19