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 ရဲ့အလုပ္လုပ္ပုံ ကိုနားလည္ၿပီး မွတ္လည္းမွတ္မိလိမ္႔မယ္လို႔ကၽြန္ေတာ္ယံုၾကည္ပါတယ္ ။ နားၾကဦးစို႔ဗ်ာ …။
ေဆြးေႏြးခ်က္ (၉)
Monday, July 5, 2010
Subscribe to:
Post Comments (Atom)
0 comments:
Post a Comment