حلقه while بلاکی از کد را تا زمانی که شرط معينی true است (غير صفر) اجرا می کند. شکل کلی آن به صورت زير است:
while (condition)
{
loop_body
}
condition يک عبارت شرطی است. اگر اين عبارت false (يا صفر) باشد حلقه به پايان می رسد و دستور بعد از while اجرا می شود. body_loop دستوراتی است که تا زمان درست بودن شرط تکرار می شوند. اگر بدنه حلقه تنها يک دستور باشد نيازی به آکولاد نيست.
دياگرام زير نحوه اجرای حلقه while را نشان می دهد. توجه کنيد که شرط در ابتدای حلقه بررسی می شود و اگر false باشد وارد حلقه نمی شود. اگر شرط true باشد بدنه حلقه اجرا می شود.
مثال. قطعه کد زير اعداد 1 تا 20 را نمايش می دهد.
int count = 1;
while (count <= 20) {
cout << count << endl;
count++;
}
حلقه while مانند يک حلقه for بدون قسمت های initial و update است: بنابراين هرکاری که با حلقه for می شود انجام داد با حلقه while هم می شود. اگر مقداردهی اوليه و افزايش متغيرها درون حلقه موردنياز است حلقه for را بهتر است استفاده کنيد. اگر حلقه while را استفاده می کنيد مقداردهی اوليه موردنياز قبل و افزايش درون حلقه بايد انجام بگيرد.
for ( ; condition ; ) معادل است با while (condition)
مثال. حلقه زير تا زمان وارد شدن عدد 99 ورودی دريافت می کند. عدد 99 که انتهای داده ورودی را معين می کند sentinel ناميده می شود.
int nbr=0;
while (nbr <= 99)
cin >> nbr ;
While تودرتو
مشابه دستورات if و for دستور while هم می تواند تودرتو باشد.
مثال. برنامه زير 5 عدد که بايد مابين 1 تا 10 باشد از ورودی دريافت می کند.
#include <iostream.h>
main()
{ int array[5];
int ctr = 0,
nbr = 0;
cout << "This program prompts you to enter 5 numbers" << endl;
cout << "Each number should be from 1 to 10" << endl;
while ( ctr < 5 ) {
nbr = 0;
while (nbr < 1 || nbr > 10) {
cout << endl << "Enter number " << ctr + 1 << " of 5: ";
cin >> nbr ;
}
array[ctr] = nbr;
ctr++;
}
for (ctr = 0; ctr < 5; ctr++)
cout << "Value " << ctr + 1 << " is " << array[ctr]; << endl
return 0;
}
while (condition)
{
loop_body
}
condition يک عبارت شرطی است. اگر اين عبارت false (يا صفر) باشد حلقه به پايان می رسد و دستور بعد از while اجرا می شود. body_loop دستوراتی است که تا زمان درست بودن شرط تکرار می شوند. اگر بدنه حلقه تنها يک دستور باشد نيازی به آکولاد نيست.
دياگرام زير نحوه اجرای حلقه while را نشان می دهد. توجه کنيد که شرط در ابتدای حلقه بررسی می شود و اگر false باشد وارد حلقه نمی شود. اگر شرط true باشد بدنه حلقه اجرا می شود.
مثال. قطعه کد زير اعداد 1 تا 20 را نمايش می دهد.
int count = 1;
while (count <= 20) {
cout << count << endl;
count++;
}
حلقه while مانند يک حلقه for بدون قسمت های initial و update است: بنابراين هرکاری که با حلقه for می شود انجام داد با حلقه while هم می شود. اگر مقداردهی اوليه و افزايش متغيرها درون حلقه موردنياز است حلقه for را بهتر است استفاده کنيد. اگر حلقه while را استفاده می کنيد مقداردهی اوليه موردنياز قبل و افزايش درون حلقه بايد انجام بگيرد.
for ( ; condition ; ) معادل است با while (condition)
مثال. حلقه زير تا زمان وارد شدن عدد 99 ورودی دريافت می کند. عدد 99 که انتهای داده ورودی را معين می کند sentinel ناميده می شود.
int nbr=0;
while (nbr <= 99)
cin >> nbr ;
While تودرتو
مشابه دستورات if و for دستور while هم می تواند تودرتو باشد.
مثال. برنامه زير 5 عدد که بايد مابين 1 تا 10 باشد از ورودی دريافت می کند.
#include <iostream.h>
main()
{ int array[5];
int ctr = 0,
nbr = 0;
cout << "This program prompts you to enter 5 numbers" << endl;
cout << "Each number should be from 1 to 10" << endl;
while ( ctr < 5 ) {
nbr = 0;
while (nbr < 1 || nbr > 10) {
cout << endl << "Enter number " << ctr + 1 << " of 5: ";
cin >> nbr ;
}
array[ctr] = nbr;
ctr++;
}
for (ctr = 0; ctr < 5; ctr++)
cout << "Value " << ctr + 1 << " is " << array[ctr]; << endl
return 0;
}