ساختارهای کنترلی - حلقه while - بخش دوم
در این فصل از آموزش برنامه نویسی C++ قصد داریم به بررسی ساختار حلقه while() بپردازیم که وظیفه ای شبیه به حلقه for() را برعهده دارد.
while ( عبارت شرطی )
{
Line Command 1;
Line Command 2;
Line Command n;
}
از این ساختار برای ایجاد حلقه های تکرار استفاده می شود و تا زمانیکه عبارت شرطی داخل پرانتز while() درست باشد دستورات مربوطه اجرا خواهند شد و به محض نادرستی شرط، کنترل دستورات از حلقه خارج خواهد شد.
1 2 3 4 5 6 7 8 9 10 11
| |
int n;
cout << "Enter the starting number that bigger than zero : " ;
cin >> n ;
while ( n > 0 )
{
cout << n << ", " ;
n--;
}
cout << "Fire! \n" ;
|
Enter the starting number that bigger than zero : 8
8, 7, 6, 5, 4, 3, 2, 1, Fire!
کد برنامه نویسی بالا، عددی را از کاربر گرفته و با استفاده از حلقه while شمارش معکوس آنرا در خروجی نمایش می دهد.
در برنامه C++ بالا، اگر عدد صفر یا کمتر از آنرا وارد کنیم شرط حلقه while نادرست بوده و دستورات درون حلقه اجرا نخواهد شد و فقط عبارت Fire! چاپ می شود.
شکل دیگری از این دستور وجود دارد که شبیه به while() بوده و به آن حلقه do while گفته می شود، با این تفاوت که اگر شرط درون آن نادرست باشد دستورات درون حلقه حداقل یکبار اجرا می شوند و اگر شرط درست باشد، حلقه تا زمان نادرستی شرط ادامه خواهد یافت و ساختار آن بدینگونه است :
do
{
Line Command 1;
Line Command 2;
Line Command n;
}
while ( عبارت شرطی )
{
Line Command 1;
Line Command 2;
Line Command n;
}
در ساختار do while() ابتدا دستورات do اجرا شده و بعد شرط درون while() بررسی می شود و در صورت درستی شرط، اجرای دستورات do ادامه پیدا خواهد کرد.
نکته ) دوستان توجه داشته باشند که اگر دستورات مربوط به for, while, do, … فقط یک دستور باشد نیازی به قرار دادن دستور درون آکولاد نیست و تکرار فقط بر روی تنها سطر دستور ادامه خواهد داشت و تا زمانیکه شرط برقرار باشد فقط و فقط آن سطر تکرار و اجرا می شود و تا زمان پایان به خط بعدی نخواهد رفت اما اگر دستورات بیش از یکی باشد لازم است که آنها را در آکولاد قرار دهیم و این قانون کلی در برنامه نویسی است.
1 2 3 4 5 6 7 8
| |
int n;
do
{
cout << "Enter number (0 to end): " ;
cin >> n ;
cout << "You entered: " << n << "\n" ;
} while ( n != 0 )
|
Enter number (0 to end): 1298
You entered: 1298
Enter number (0 to end): 35
You entered: 35
Enter number (0 to end): 0
You entered: 0
اگر عدد ورودی در کد بالا در ابتدا صفر باشد دستورات یکبار اجرا می شود.