منوی سریع

ساختارهای کنترلی - حلقه 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   

اگر عدد ورودی در کد بالا در ابتدا صفر باشد دستورات یکبار اجرا می شود.

آموزش برنامه نویسی C++   آموزش برنامه نویسی C++