در این فصل از آموزش برنامه نویسی 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 << ", " ; } 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
اگر عدد ورودی در کد بالا در ابتدا صفر باشد دستورات یکبار اجرا می شود.