ေဆြးေႏြးခ်က္ (၉)

Monday, July 5, 2010

while loop

Looping ေတြထဲက ဒီတစ္မ်ိဳးကေတာ႔ while loop ပါ ။ while loop ရဲ့ ေရးသားပံုကေတာ႔

while (expression) statement;

နဲ႔

while (expression)
{
Statement;
}

တို႔ပါပဲ ။ for တုန္းကလိုေပါ႔ brace မပါတာနဲ႔ ပါတာ ၂ ခု ကြဲေနတာကိုေတာ႔ for loop တုန္းက ရွင္းျပခဲ႔ၿပီးျဖစ္လို႔ နားလည္လိမ္႔မယ္လို႔ယူဆပါတယ္ ။သူ႔ အလုပ္လုပ္ပံုကိုပိုၿပီးနားလည္သြားေအာင္ ဥပမာေလးနဲ႔ တြဲၿပီးၾကည့္ၾကည့္လိုက္ရေအာင္ဗ်ာ ။

Example for while loop

#include <iostream>
using namespace std;

int main ()
{
int n;
cout << "Enter the starting number > ";
cin >> n;

while (n>0) {
cout << n << ", ";
--n;
}

cout << "FINISH!\n";
return 0;
}


ရွင္းလင္းခ်က္

ဒီဥပမာ Program ေလးနဲ႔ while loop ရဲ့အလုပ္လုပ္ပံုေလးကိုေျပာျပပါ႔မယ္ ။
၁ ။ ပထမ Pogram user ကို starting number ေတာင္းထားတာျဖစ္တဲ႔အတြက္ သူကထည့္ေပးလိုက္တဲ႔အခါ n ဆိုတဲ႔ variable ထဲကိုထည့္ၿပီးယူလိုက္ပါတယ္ ။

၂ ။ n တန္ဖိုးကို while ရဲ့ expression မွာ စစ္လုိက္ပါတယ္။ (n>0) n တန္ဖိုးဟာ ၀ ထက္ႀကီးသလား ဆိုၿပီး စစ္တာပါ ။ ဟုတ္ၿပီစစ္တယ္ဆိုတဲ႔အေျခေနမွာ မွန္တာရွိမယ္ မွားတာ ရွိမယ္ ။ အဲဒါဆိုေတာ႔ အမွန္အမွားေပၚမူတည္ၿပီး လုပ္ေဆာင္တာကြဲျပားသြားနိုင္ပါတယ္ ။

(က) တကယ္လို႔သာ အေျခေနဟာ သုညထက္ ႀကီးတာ အမွန္ျဖစ္ခဲ႔မယ္ဆိုရင္ ေနာက္ထက္ အဆင္႔ ၃ ကိုထပ္လုပ္ပါ႔မယ္ ။

(ခ) တကယ္လို႔ သုညထက္မ်ားငယ္ခဲ႔မယ္ ဒါမွမဟုတ္ သုည ျဖစ္ခဲ႔မယ္ဆိုရင္ သူေပးထားတဲ႔ expression မွားတဲ႔အတြက္ while loop ကထြက္ၿပီး ေနာက္ဆံုး လုပ္ေဆာင္ရမဲ႔ အဆင္႔ ၅ ကိုေက်ာ္သြားပါ႔မယ္ ။

၃ ။ အဆင္႔ ၂ မွာ စစ္တာမွန္ခဲ႔တယ္ဆိုရင္ cout << n << ", "; --n; ဆိုတဲ႔ statement ကိုလုပ္ေဆာင္သြားမွာပါ ။ အဲဒီအတြက္ေၾကာင္႔ User ရိုက္လိုက္တဲ႔ အစဂဏန္း ကေနစၿပီး စက္ခရင္မွာ ထုတ္ေပးၿပီး တန္ဖိုး ၁ ေလွ်ာ႔ေလွ်ာ႔သြားမွာပါ ။

၄ ။ အဲဒီလုပ္ေဆာင္ခ်က္ ၿပီးတဲ႔အခါမွာေအာက္ကိုဆက္ဆင္းပါတယ္ while loop ရဲ့ end block ျဖစ္တဲ႔ brace ( } ) ကိုေတြ႔တဲ႔အခါမွာေတာ႔ အေပၚ while loop ရဲ့ expression ကိုျပန္တက္ၿပီး အဆင္႔ ၂ ကေနျပန္စမွာျဖစ္ပါတယ္ ။

၅ ။ ဒီအဆင္႔မွာေတာ႔ while loop က ပတ္စရာရွိတာေတြ လုပ္စရာရွိတာေတြအကုန္ လုပ္ၿပီး တဲ႔ အခါ FINISH ဆိုတဲ႔ စာသားကိုထုတ္ေပးမွာျဖစ္ပါတယ္ ။
က်န္တဲ႔ ပရုိဂရမ္ ေတြမွာလဲ သေဘာတရား ကအားလံုးတူတူပဲျဖစ္ပါတယ္ ။ ဒီအဆင္႔ေတြတိုင္းပဲ အလုပ္လုပ္ ပါတယ္ ။


Result




While statement with 'and'&& Operator

#include <iostream>
using namespace std;

int main()
{
int len;

cout << "Enter length (1 to 50): ";
cin >> len;

while(len>0 && len<50)
{
cout << '\3';
len--;
}
cout<<endl;
return 0;
}

ဒါကေတာ႔ ေနာက္ပံုစံတစ္မ်ိဳးေပါ႔ ..။ while loop ရဲ့ expression ထဲမွာ စမွတ္နဲ႔ ဆံုးမွတ္ ၂ ခုေပးၿပီး အဲဒီ ၾကားထဲက ဂဏန္းဟုတ္တယ္ဆိုရင္ အလုပ္လုပ္ခိုင္းမယ္ဆိုတဲ႔ program ေလးပါ ။ အဲဒီအတြက္ logical operator and (&&) ကိုသံုးထားပါတယ္ ။ တျခား ေအာ္ပေရတာေတြနဲ႔ လည္းကိုယ္စိတ္ကူးတည့္ရင္တည့္သလို ျပန္စမ္းၿပီး run ၾကည့္ေစခ်င္ပါတယ္ ။ အဲဒါမွတစ္ခါတည္း သူ႔သေဘာတရားကိုနားလည္သြားမွာျဖစ္သလို အရင္ ၿပီးခဲ႔တဲ႔ေဆြးေႏြးခ်က္ေတြအတြက္လည္းျပန္ၿပီးေႏႊးၿပီးသားျဖစ္မွာပါ ။


Result



A while true loop

While loop ရဲ့ ေနာက္ပံုစံတစ္မ်ိဳးပါ ။ while loop ကိုလည္းသံုးခ်င္တယ္ expression မွာလည္း ဘာမွျပစရာမရွိဘူး ဆိုရင္ while(true) ဒါမွမဟုတ္ while(1) လို႔ေရးၿပီး ကိုယ္လုပ္ေစခ်င္တဲ႔ statement ေတြကိုသံုးၿပီး while looping ပတ္ခို္င္းနုိင္ပါတယ္ ။ (ကၽြန္ေတာ္နားလည္သလိုေရးထားတာျဖစ္လို႔ မွားေကာင္းမွားနိုင္ပါတယ္ ။ )
ဒီလိုပံုစံလည္း while loop ကိုေရးတယ္ဆိုတာကို သိေစခ်င္တာပါ ။

#include <iostream>

int main()
{
int counter = 0;

while (true) // or while(1)
{
counter ++;
std::cout<<counter<<std::endl;
if (counter > 20)
break;
}
std::cout << "counter: " << counter << "\n";
return 0;
}

Program ရဲ့တျခားအလုပ္လုပ္ပံုအေၾကာင္းရာေတြကေတာ႔ ေထြေထြထူးထူးမဟုတ္လို႔ရွင္းမျပေတာ႔ပါဘူး အေပၚဆံုးမွာ ေရးျပခဲ႔တဲ႔ ဥပမာနဲ႔ အလုပ္လုပ္ပံုခ်င္းတူတူပါပဲ ။ operator break ဆိုတာကေတာ႔ while loop က အဲဒီေနရာကိုေရာက္ၿပီး break ဆိုတဲ႔ ေနရာကိုေရာက္ၿပီဆိုတာနဲ႔ပတ္ေနတာကိုရပ္ရမယ္လို႔ ဆိုလိုတာပါ ။ ဒါေၾကာင္႔ counter တန္ဖိုး ၂၀ ေက်ာ္ၿပီဆိုတာနဲ႔ while loop ကထြက္သြားမွာပါ ။ break ရဲ့အလုပ္လုပ္ပံုအေသးစိတ္ကိုေတာ႔ ေနာက္မွာပဲ ေဆြးေႏြးပါေတာ႔မယ္ ။


ကဲဗ်ာ.... ဒီပံုစံ ၃ မ်ိဳးေလာက္ရယ္ စာဖတ္သူ ကို္ယ္တိုင္ ဥာဏ္ကြန္႔ျမဴးၿပီးေရးၾကည့္မဲ႔ program ေလးေတြရယ္ ဆိုရင္ while loop ရဲ့အလုပ္လုပ္ပုံ ကိုနားလည္ၿပီး မွတ္လည္းမွတ္မိလိမ္႔မယ္လို႔ကၽြန္ေတာ္ယံုၾကည္ပါတယ္ ။ နားၾကဦးစို႔ဗ်ာ …။

0 comments:

Post a Comment

ဒီPost ရဲ႕ေရးသားခ်က္နဲ႕ပက္သက္ျပီး ေ၀ဖန္အၾကံျပဳႏုိင္ပါတယ္။