یکی دیگر از دستورات شرطی موجو در زبان برنامه نویسی ++C دستور while است که بلاکی از کد را تا زمانی که شرط معینی true است (غیر صفر) اجرا می کند. شکل کلی آن به صورت زیر است:

while (condition)
}
loop_body
   {

condition یک عبارت شرطی است. اگر این عبارت false (یا صفر) باشد حلقه به پایان می رسد و دستور بعد از while اجرا می شود. body_loop دستوراتی است که تا زمان درست بودن شرط تکرار می شوند. اگر بدنه حلقه تنها یک دستور باشد نیازی به آکولاد نیست.
دیاگرام زیر نحوه اجرای حلقه while را نشان می دهد. توجه کنید که شرط در ابتدای حلقه بررسی می شود و اگر false باشد وارد حلقه نمی شود. اگر شرط true باشد بدنه حلقه اجرا می شود.

مثال. قطعه کد زیر اعداد ۱ تا ۲۰ را نمایش می دهد.

;int count = 1
while (count <= 20)}

  ; cout << count << endl
;++ count
{

حلقه while مانند یک حلقه for بدون قسمت های initial و update است: بنابراین هرکاری که با حلقه for می شود انجام داد با حلقه while هم می شود. اگر مقداردهی اولیه و افزایش متغیرها درون حلقه موردنیاز است حلقه for را بهتر است استفاده کنید. اگر حلقه while را استفاده می کنید مقداردهی اولیه موردنیاز قبل و افزایش درون حلقه باید انجام بگیرد.

for ( ; condition ; ) معادل است با(; while (;condition