לולאת do...while היא לולאת תנאי, כמו לולאת while מספר האיטראציות בכניסה ללולאה לא ידוע והוא תלוי בתנאי , בניגוד ללולאת while התנאי נבדק ביציאה מהלולאה.
כמו בלולאת while גם בלולאת do...while מספר האיטראציות תלוי בתנאי,
בניגוד לולאת while התנאי אינו נבדק בכניסה ללולאה אלא ביציאה מהלולאה, מה שמבטיח שתבוצע לפחות איטראציה אחת.
לולאת do … while מורכבת גם היא משני חלקים, אולם הפעם בסדר הפוך:
גוף הלולאה קודם לביטוי הבוליאני הקובע האם היא תמשיך להתבצע.
תחביר:
do
{
Statement 1;
Statement 2;
…
Statement N;
}
while (Boolean
כמו לולאת while, גם לולאת do…while תבוצע כל עוד ערכו של הביטוי הבוליאני הוא true, אולם בניגוד ללולאת while, לולאה זו מבטיחה שלפחות איטראציה אחת תבוצע וזאת משום שהתנאי נבדק בסופה.
לדוגמה (DoWhile01):
בשורה 9 מוגדרת הלולאה do...while, c, בכניסה ללולאה אין בדיקה של תנאי דבר שמבטיח שהלולאה תבצע לפחות איטראציה אחת.
התנאי נבדק ביציאה מהלולאה, במידה וערכו של num גדול או שווה ל-0 הלולאה תבצע איטראציה נוספת. בסיום כל איטראציה ולפני ביצוע האיטראציה הבאה נבדק התנאי פעם נוספת. הלולאה תתבצע כל עוד num יהיה גדול או שווה ל-0. הערה - חייבים להתייחס למשתנה שמרכיב את התנאי בתוך הלולאה, אחרת התנאי לעולם יתקיים וניכנס ללולאה אין סופית.