בלולאת for ידענו מראש, לפני הכניסה ללולאה כמה איטראציות יתבצעו,
במקרים בהם לא ניתן לדעת כמה איטראציות יתבצעו לולאת for אינה נותנת פיתרון טוב, במקרים אלו נעדיף להשתמש בלולאת while (או do … while עליה מתמקד המאמר הבא).
לולאת while מורכבת משני חלקים : ביטוי בוליאני, וגוף הלולאה. תחביר:
בכניסה ללולאה אנו לא יודעים כמה איטראציות היא תבצע, אין אנו יכולים לדעת מתי היא תסתיים, לולאת while תבוצע כל עוד הביטוי הבוליאני שבכותרתה הוא true .
בכניסה ללולאה נבדק הביטוי הבוליאני, במידה והוא true תבוצע איטראציה, במידה ולא הלולאה תסתיים.
בסיום האיטראציה נבדק התנאי פעם נוספת, במידה והוא true תבוצע איטראציה נוספת וחוזר חלילה עד אשר ערכו של הביטוי יהיה false .
יתכן מצב שבו הלולאה לא תבוצע ולו פעם אחת בודדה, זה יקרה כאשר בכניסה הראשונה ללולאה ערכו של הביטוי הבוליאני יהיה false.
נכתוב דוגמת קוד הקולטת סדרה של מספרים חיוביים שאורכה אינו ידוע, הקלט מסתיים כאשר נקלט מספר שלילי. עם סיום הביצוע של הלולאה נדפיס את הממוצע של כל המספרים החיוביים שנקלטו. (WhileSample01):
בשורה 9 מוגדרת הלולאה while, לפני הכניסה ללולאה נבדק תנאי, במידה וערכו של num גדול או שווה ל-0 הלולאה תבצע איטראציה.
בסיום כל איטראציה ולפני ביצוע האיטראציה הבאה נבדק התנאי פעם נוספת.
הלולאה תתבצע כל עוד num יהיה גדול או שווה ל-0. הערה - חייבים להתייחס למשתנה שמרכיב את התנאי בתוך הלולאה, אחרת התנאי לעולם יתקיים וניכנס ללולאה אין סופית.