goto statement
ေဆြးေႏြးခ်က္(၁၂) မွာတုန္းက break နဲ႔ continue တို႔မတူတာကိုေဆြးေႏြးခဲ႔ပါတယ္ ။ break နဲ႔ continue က looping အတြင္းမွာပဲ အလုပ္လုပ္ၾကပါတယ္။ loop ကိုရပ္လိုက္တာမ်ိဳး loop ပတ္ေနရင္းနဲ႔ ကိုယ္ေက်ာ္ခ်င္တဲ႔ေနရာေလးေတြေက်ာ္သြားတာမ်ိဳးေတြ လုပ္လို႔ရပါတယ္ ။ ဒါေပမဲ႔ looping ကိုေက်ာ္ပီးေတာ႔ တျခားေနရာကိုသြားဖို႔က်ေတာ႔ သူတို႔မတက္နိဳင္ပါဘူး အဲဒီအခါ မွာ goto ကိုသံုးရပါတယ္။ goto ဆိုမွေတာ႔ပီးစလြယ္ေျပာရရင္ go (သြားပါ) to (ဘယ္ေနရာသို႔) ေပါ႔ဗ်ာ (အဲ … go to ဆိုၿပီးသြားခြဲမေရးနဲ႔ေနာ္ မွားလိမ္႔မယ္ ဗ် … း) ..) ။ အဲလိုသြားခုိင္းဖို႔အတြက္ ကိုယ္က ေနရာတစ္ခုေတာ႔သတ္မွတ္ေပးထားရပါလိမ္႔မယ္ ။ ဒါမွသာ program ကို မင္းကဒါလုပ္ပီးရင္ေတာ႔ ဘယ္ေနရာကိုသြား ဒီလိုအေျခအေနျဖစ္လာရင္ေတာ႔ ဘယ္ကိုသြားဆိုၿပီး အသြားခုိင္းလို႔ရမွာပါ ။ အဲလို goto နဲ႔အသြားခိုင္းဖို႔အတြက္ ႀကိဳပီး သတ္မွတ္ထားတဲ႔ေနရာေလးကိုေတာ႔ label (ေလဗယ္) လို႔ေခၚပါတယ္ ။ goto အသံုးျပဳပံုကေတာ႔
<Label>:
{
<statement> ;
}
goto <label>;
ပါ ။ ဥပမာေလး ပါ ၾကည့္လိုက္ရင္ ပိုရွင္းသြားမယ္ထင္ပါတယ္ ။
Example For goto statement
#include <iostream>
using namespace std;
int main()
{
int count = 1;
START:
if ( count > 5 )
goto END;
cout << count << "\n";
++count;
goto START;
END:
cout << "Ending!"<<endl;
return 0;
}
ရွင္းလင္းခ်က္
ဒီ ဥပမာ Program ေလးမွာ START ရယ္ END ရယ္ဆိုပီး label ၂ ခုထားထားပါတယ္ ။
၁ ။ int count = 1; ဆိုၿပီးေတာ႔ count တန္ဖိုးကို ၁ ထည့္ထားလိုက္ပါတယ္ ။
၂ ။ if ( count > 5 ) ဆိုၿပီး count တန္ဖိုး ဟာ ၅ ထက္ႀကိးသလားဆိုတာ ကိုစစ္ပါတယ္ ။ ႀကီးတယ္ဆိုရင္ေတာ႔ goto END ဆိုတဲ႔အတြက္ေၾကာင္႔ END : label ရွိရာ
END: cout << "Ending!"<<endl; ဆီကို ေက်ာ္သြားမွာျဖစ္ပါတယ္ ။ မႀကီးဘူးဆိုရင္ cout << count << "\n"; ++count; ဆိုတဲ႔အတြက္ count တန္ဖိုးကို secreen မွာထုတ္ေပးမွာျဖစ္ပီး count တန္ဖိုးကို ေနာက္ထပ္ ၁ တိုးထားလိုက္ပါတယ္ ။
၃ ။ goto START; ဆိုတဲ႔အတြက္ေၾကာင္႔ label START : ရွိတဲ႔ေနရာကိုျပန္တက္ပါတယ္ ။ ၿပီးရင္ တစ္ခါ count တန္ဖိုးကိုတစ္ခါျပန္စစ္ပါတယ္ ။ နံပါတ္ ၂ အတိုင္းျပန္အလုပ္လုပ္ပါတယ္ ။
ဒီေလာက္ဆိုရင္ေတာ႔ goto ရဲ့အလုပ္လုပ္ပံုကုိနားလည္မယ္လို႔ထင္ပါတယ္ ။ Result ကိုတစ္ခ်က္ၾကည့္ၾကည့္လိုက္ပါ ။
Result
Example For goto in loop
#include <iostream>
using namespace std;
int main ()
{
int count =0;
for(int i=0;i<10;i++)
{
cout<<i<<" ";
count++;
if(i==5) goto OK;
}
OK :
{
cout<<"\nTimes for loop is "<<count<<endl;
}
return 0;
}
For loop ထဲမွာ goto သံုးထားတဲ႔ပံုစံေလးပါ ။ အရင္ break တို႔ continue တို႔တုန္းက ပံုစံဆင္တူေလးေတြေရးျပခဲ႔ဖူးပါေသးတယ္ ။
အခု goto ကိုသံုးၿပီးေရးထားတဲ႔ပံုစံပါ သိပ္မကြာပါဘူး ။ i တန္ဖိုး က ၅ ျဖစ္တာတဲ႔ OK ဆိုတဲ႔ label ကို ခုန္သြားမွာပါ ။ သေဘာေပါက္မယ္ထင္ပါတယ္ ။
Result
ဒီေလာက္ဆိုရင္ Jump statement ေတြျဖစ္တဲ႔ break, continue ,goto တို႔ကိုဘယ္လိုေနရာေတြမွာသံုးတယ္သူတု႔ိရဲ့အလုပ္လုပ္ပံုကဘယ္လိုဆိုတာကို သေဘာေပါက္မယ္ထင္ပါတယ္ ။ အႀကံေပးခ်င္တာေလးတစ္ခုကေတာ႔ အရင္ေရွ့ပိုင္း looping ေတြအတြက္ေဆြးေႏြးခဲ႔တုန္း က jump statement ေတြကို သံုးခဲ႔တာေတြရွိပါတယ္ ။ ဒါေပမဲ႔ ကၽြန္ေတာ္ေနာက္ပိုင္းမွ ေဆြးေႏြးမယ္ဆိုၿပီးေျပာမျပခဲ႔ပါဘူး ။ ဒါေၾကာင္႔ ပိုၿပီး ေသခ်ာနားလည္သြားခ်င္တယ္ဆိုရင္ေတာ႔ အရင္ looping အပိုင္းေတြကိုတစ္ခ်က္ျပန္ၾကည့္ေစခ်င္ပါတယ္ ။
ေဆြးေႏြးခ်က္ (၁၃)
Wednesday, July 14, 2010
Subscribe to:
Post Comments (Atom)
0 comments:
Post a Comment