ကွန်ပျူတာများ, ပရိုဂရမ်းမင်း
(ဂျာဗား) သံသရာများအတွက်အဆုံးမဲ့
ဂျာဗား၌နီးပါးမည်သည့် programming language ကိုအတွက်လိုပဲသံသရာ, သူတို့ကဟုခေါ်ကြသည်အဖြစ်, အဲဒီမှာကုဒ်တစ်ခုအထူးသဖြင့်အပိုင်းအစများစွာအထပ်ထပ်ပေး tools များဖြစ်ကြသည်, ဒါမှမဟုတ်။ ဂျာဗား၌ကွင်းအဖြစ်အဘို့နှင့်နေစဉ်အော်ပရေတာများကကိုယ်စားပြုအဖြစ်သူတို့ရဲ့အမျိုးပေါင်းနေကြသည်။ ပုံမှန်အားဖြင့်, သံသရာသူတို့နှင့်အတူအချို့သောပစ္စည်းများနှင့်နောက်ထပ်စစ်ဆင်ရေးကိုရှာတဦးတည်းရှုထောင်နဲ့ multi-dimensional Array ကိုနှင့် (collection များကိုအပါအဝင်) ကြားမှာ data တွေကိုအဆောက်အဦများ၏ကျမ်းပိုဒ်များအတွက်အသုံးပြုကြသည်။ သို့သော်ဤကဲ့သို့သောဂျာဗား၏သံသရာအဖြစ် tool ကိုသုံးပြီး၏တစ်ခုတည်းသောနည်းလမ်းမဟုတ်ပါဘူး။ အသုံးပြုမှုဥပမာသူတို့ရဲ့ထည့်သွင်းစဉ်းစားအဖြစ် actuated မည်ဖြစ်သည်။
loop အဆိုပါစဉ် က Java: ဖော်ပြချက်များနှင့်နမူနာ
ဂျာဗား၌အခြေခံသံသရာအော်ပရေတာအနေဖြင့်ဖြစ်ပါတယ်။ ထိုသို့စစျမှနျသောဟာယုတ္တိတန်ဖိုးကိုကျေနပ်လိမ့်မယ်ပြီးနောက်ကွင်းခတ်အတွက်ပူးတွဲနေသမျှကာလပတ်လုံးအခြေအနေကိုစကားရပ်အဖြစ်အကြိမ်ကြိမ်ခံရဖို့သူ့ခန္ဓာကိုယ်ထဲမှာပူးတွဲ code ကိုအတိုအထွာ, ။ အောက်မှာဖေါ်ပြတဲ့အတိုင်းတစ်ဦးအနေဖြင့်ကြေငြာချက်၏ယေဘုယျပုံစံဖြစ်ပါသည်:
{(ခွအေနအေ) အနေဖြင့်
// ကွင်းဆက်ခန္ဓာကိုယ်
}
ယုတ္တိအခြေအနေများ၏တန်ဖိုးစစ်မှန်တဲ့ဖြစ်ငြိမ်းပြီးတာနဲ့သည် loop ခန္ဓာကိုယ်ကုဒ်အတွက်အကျဉ်းသားထွက်သယ်ဆောင်ခံရဖို့နှင့်ထိန်းချုပ်မှုချက်ချင်းလိုင်းရောက်ရှိပြီးနောက်လွန်ပါလိမ့်မည်ငြိမ်းလိမ့်မည်။
ရှင်းလင်းပြတ်သားဘို့, အောက်ကပုံမှာပြထားတဲ့ရဲ့ဥပမာတစ်ခုကိုကြည့်ကြကုန်အံ့:
ကြေငြာ variable ကိုရေတွက်ပိုင်းတွင် 1. Next ကိုသတ်မှတ်ကျနော်တို့အော်ပရေတာ၏နာမကိုအပြီးကွင်းအတွင်းပူးတွဲတစ်ယုတ္တိစကားရပ်ကိုကြည့်ပါ။ ဒါဟာစစ်မှန်တဲ့ဖြစ်ပါသည်, ကြောင်းဖြစ်ပါသည်, စစ်မှန်တဲ့တန်ဖိုးကိုပြန်လာ, နေသမျှကာလပတ်လုံး variable ကိုရေတွက်၏တန်ဖိုးအတိုင်း variable ကိုတန်ဖိုးကို 1 အဆတိုးနှင့် console ကို screen ပေါ်မှာပြသနေသည်ထက်လျော့နည်းသို့မဟုတ်တစ်ဦးချင်းစီဖြတ်သန်း (ကြားမှာ) နှင့်အတူကွင်းဆက်ခုနှစ်တွင် 10. ညီမျှသည်။ အဆိုပါ variable ကို၏တန်ဖိုးကို 11 သို့ရောက်ရှိခဲ့ပါသည်သောအခါ, သံသရာအလုပ်လုပ်ရပ်တန့်ကြောင်းသတိပြုပါ။
မှ 11 ရေတွက်၏တန်ဖိုးကိုကနဦးတန်းတူလျှင်, ကွင်းဆက်အခွအေနေအယူမှားပါလိမ့်မယ်, နှင့်ပရိုဂရမ်ပင်သူ့ခန္ဓာကိုယ်ထဲသို့ဝင်ကြပြီမဟုတ်ပေ။
ဒါဟာဂျာဗား syntax တစ်ခန္ဓာကိုယ်မပါဘဲနေစဉ်ကြေညာချက်၏အသုံးပြုမှုကိုခွင့်ပြုသည်ဟုထုတ်ပြန်ချက်တွင်ဖော်ပြထားသည်ကျိုးနပ်သည်။ ဒီနေရာတွင်ဥပမာတစ်ခုဖြစ်ပါတယ်။ ရဲ့ကျနော်တို့နှစ်ဦးကို variable တွေကိုဈ = 100 နဲ့ည = 200 ရှိတယ်ဆိုပါစို့, ငါတို့သူတို့ရဲ့ပျမ်းမျှအားတွက်ချက်ဖို့ဆော့ဖ်ဝဲ၏လုပ်ငန်းတာဝန်နှင့်အတူရင်ဆိုင်ခဲ့ရသည်နေကြသည် - သင်နေစဉ် "ဆွန်း»ကိုသုံးနိုင်သည်:
(++ ဈ <- ည) အနေဖြင့်,
ရလဒ်အဖြစ်နှစ်ခု variable တွေကိုမဆို၏တန်ဖိုးဟာသူတို့ရဲ့ကနဦးတန်ဖိုးများ၏ပျမ်းမျှတန်းတူဖြစ်လိမ့်မည်။ သငျသညျမွငျနိုငျသကဲ့သို့, သံသရာခန္ဓာကိုယ်မပါဘဲဿုံအလုပ်လုပ်ခဲ့, နှင့်ခြွင်းချက်စကားရပ်အားလုံးကိုလိုအပ်သောလုပ်ရပ်များထွက်သယ်ဆောင်။
Do-စဉ်၏သံသရာ
အဆိုပါ conditional expression ကိုစပိုင်းတွင်မှားယွင်းသောပြန်ရောက်လျှင်ယခင်ဥပမာထဲမှာ, ထို့နောက်အစီအစဉ်ကွင်းဆက်၏ကိုယ်ကိုလျစ်လျူရှုနှင့်သွားပါလိမ့်မည်။ သို့သော်မကြာခဏ code တွေရဲ့ကွပ်မျက်သည် loop ၏ကိုယ်၌ပါရှိသောရသောအခြေအနေများရှိနေပါသည်, မသက်ဆိုင်သည့်ခြွင်းချက်စကားရပ်၏သမ္မာတရားကိုအနည်းဆုံးတစ်ကြိမ်မှသေချာပါစေ။ တနည်းအားဖြင့်ဒါဟာသောခြွင်းချက်စကားရပ်များ၏တရားဝင်မှုစစ်ဆေးဖြစ်ပျက်အစအဦးမှာသံသရာရဲ့အဆုံးမှာမလိုအပ်ပါ။ ဤလုပ်ဆောင်ချက်သည် Do-စဉ်ဟုခေါ်သောစဉ်ကွင်းဆက်တစ်ဦးကြင်ကြင်နာနာပေးနိုင်ပါသည်။ ဒါဟာအောက်ပါပုံစံရှိပါတယ်:
{ပြုပါ
// ကွင်းဆက်ခန္ဓာကိုယ်
} နေစဉ် (ခွအေနအေ);
ကျွန်တော်ကြည့်ရှုနိုင်သကဲ့သို့, ပထမ, ကွပ်မျက်သံသရာအဘို့ကိုယျခန်ဓာဖြစ်တယ်, သာထို့နောက်အခြေအနေကို check လုပ်ထားမှန် - ဒါတစ်ခုချင်းစီကြားမှာ။
အပေါ်က code ကိုတစ်ဦးသမားရိုးကျစဉ်နှင့်အတူအမှု၌ရှိသကဲ့သို့ခန့်မှန်းခြေအားဖြင့်အတူတူပင်ပြည့်။ ကျွန်တော်ရေတွက် 11 တန်ဖိုးတာဝန်ပေးအပ်လျှင်အော်ပရေတာဟူသောအသုံးအနှုနျးမှနျကနျအတည်ပြုရန်နိုင်မီသို့သော်အဆိုပါကွင်းဆက်ခန္ဓာကိုယ်နေဆဲ, တခါဖြည့်ဆည်း။
ဂျာဗားသံသရာ - အဘို့ဖော်ပြချက်များနှင့်နမူနာ
သံသရာအဘို့ ဂျာဗားမှတစ်ဦးစွယ်စုံများနှင့်ထိရောက်သောဘာသာစကားပုံစံဖြစ်ပါတယ်။ က Java SDK ကို၏ပဉ္စမဗားရှင်းအချိန်အထိထုတ်ပြန်ကြေညာချက်များအတွက်၏တစ်ဦးတည်းသာအစဉ်အလာပုံစံကြီးအသစ်တစ်ခုပြီးနောက် - တစ်ဦးချင်းစီသည်။ ဒီအပိုင်းမှာကျနော်တို့အော်ပရေတာများ၏ရိုးရာပုံစံကိုစူးစမ်းလေ့လာပါလိမ့်မယ်။ အောက်မှာဖေါ်ပြတဲ့အတိုင်း, Java ကွင်းဆက်အဘို့ဖြစ်၏:
ထိန်းချုပ်မှုကုဒ်သည် loop အတွက်ပြောင်းရွှေ့လိမ့်မည်မီကပထမဦးဆုံးတန်ပြန်အဖြစ်တာဝန်ထမ်းဆောင်သည် variable ကိုဈ initializes ။ ကောင်တာအချို့တန်ဖိုးကိုနှင့်နှိုင်းယှဉ်သည်, ကစစ်မှန်တဲ့ပြန်လာလျှင်, ခန္ဓာကိုယ်ကွပ်မျက်ခံရခြင်းဖြစ်သည်ကျသောထို့ပြင်အဆိုပါခြွင်းချက်စကားရပ်, ဓြှု။ ထို့နောက်ရေတွက်တန်ဖိုးကိုကကြိုတင်သတ်မှတ်ထားသောခြေလှမ်းဖြင့်ပြောင်းလဲလျက်ရှိသည်နှင့်အခွအေနအယူမှားသည်အထိနောက်တဖန်ဒါအပေါ်ခြွင်းချက်စကားရပ် check လုပ်ထားပါ။ အောက်တွင်ဖော်ပြထားသော block ပုံသံသရာ၌ရှိသမျှသောအဆင့်ဖော်ပြသည်။
ပိုကောင်းတဲ့နားလည်မှုငါတို့သည်ဂျာဗားများအတွက်ဘယ်လိုသံသရာ၏ဥပမာတစ်ခုပေး:
ကျနော်တို့ loopVal variable ကိုတစ်ဦးကောင်တာအဖြစ်အသုံးပြုကြောင်းသိမြင်ရကြ၏။ တစ်ဦးချင်းစီကြားမှာပြီးနောက်ယင်း၏တန်ဖိုးကို 1 ကြီးထွားပါလိမ့်မယ်, ထိုသို့ထိန်းချုပ်မှု variable ကိုထုတ်ပြန်ကြေညာချက်အဘို့အပြင်ပကြေညာနိုင် 11. မှတ်ချက်ရောက်ရှိတိုင်အောင်, ထို့နောက်သည်အထိဖြစ်ပျက်ပါလိမ့်မယ်, ဒါပေမယ့်သင်ကလွဲပြီးဘယ်နေရာမှာမဆိုဒီ variable ကိုအသုံးမပြုချင်ကြပါလျှင် သံသရာအတွက်ကကြေညာချက်ထဲမှာတိုက်ရိုက်ပါကကြေညာရန်အကြံပြုလိုတယ်။ အဆိုပါကြေညာချက်တွင်ကြေငြာနေတဲ့ variable ကိုဒီတူညီတဲ့သံသရာအတွင်းအတိုင်းအတာရှိကြောင်းစိတ်ကိုထားပါ။
သငျသညျမျိုးစုံကွင်းဆက်ထိန်းချုပ်မှု variable ကိုကြေညာရန်လိုတဲ့အခါကြိမ်ရှိပါတယ်။ ဂျာဗားကွင်းဆက်ဘို့သင့်ကိုကော်မာကွဲကွာနှစ်ခုသို့မဟုတ်နှစ်ခုထက်ပိုသော variable တွေကို, specify လုပ်ဖို့, သူတို့၏စတင်ခြင်း၌၎င်း, ကြားမှာနေစဉ်အတွင်းနှစ်ဦးစလုံးအဲဒီလိုလုပ်ဖို့ခွင့်ပြုပါတယ်။ ထိုကဲ့သို့သောအော်ပရေတာကိုအောက်ပါဖြစ်လိမ့်မည်:
{} (;; ဈည <++ ဈ, --j ဈ = 1, int ည = 10 int) အတွက်
တစ်ဦးချင်းစီကြားမှာမှာ variable ကို၏တန်ဖိုးဈ 1 အဆတိုးနေသည်နှင့် variable ကိုည၏တန်ဖိုးအဆိုပါကြားမှာနေသမျှကာလပတ်လုံးကိုယ့်ထက် သာ. ကြီးမြတ်သို့မဟုတ်ညညီမျှသည်အဖြစ်ကွပ်မျက်လိမ့်မည် 1. ခြင်းဖြင့် decremented ဖြစ်ပါတယ်။
ကြေညာချက်များအတွက်လျှောက်လွှာ၏အင်္ဂါရပ်များ
အားလုံးသုံးပိုင်း (အစပိုင်းမှာအခြေအနေကို, နှင့် increment / လျှော့) က၎င်း၏ရည်ရွယ်ရည်ရွယ်ချက်အတွက်အသုံးပြုမရနိုငျကတည်းကသံသရာအဘို့, အတော်လေးပြောင်းလွယ်ပြင်လွယ်ဒီဇိုင်းဖြစ်ပါတယ်။ ဥပမာအားဖြင့်, အစားထိန်းချုပ်မှု variable ကိုအတူ conditional expression ကိုမဆို boolean variable ကိုအစားထိုးနိုင်ပါတယ်။
boolean ထွက်ပေါက် = မှားယွင်းသော;
{; (++ ဈဈ = 0 ;! ထွက်ပေါက် int) အတွက်
ထွက်ပေါက် = ဟုတ်မှန်သောသူ,
}
အထက်ပါဥပမာမှာကျွန်တော်တို့ဟာကိုယ်ထိန်းချုပ်မှု variable ကိုကနေအလုပ်သံသရာလုံးဝလွတ်လပ်သောသည်မည်မျှတွေ့မြင်နိုင်သည်များနှင့်ကြားမှာ၏နံပါတ်အမှန်သတ်မှတ်ထားပါလိမ့်မည်ထွက်ပေါက် variable ကိုအဘယ်အချိန်ပေါ်လုံးဝမူတည်ပါသည်။ ထို့အပြင်ထိန်းချုပ်မှု variable ကိုလုံးဝသံသရာထဲကနေဖယ်ထုတ်ခြင်းခံရနိုင်ပြီး, ကသူ့အလုပ်ကိုထိခိုက်မည်မဟုတ် for: (; ထွက်ပေါက် ;!) {} ။ ဒါကြောင့် program မှအရှိဆုံးပညာရှိလမျးမဖြစ်သော်လည်းကြောင့်တခါတရံတွင်အသုံးဝင်စေနိုင်ပါတယ်။ အဓိကအရာ - တစ်ဦးအဆုံးမဲ့သို့လှည့်ဖို့မအဖြစ်ဒါ variable ကို, သံသရာတန်ဖိုးကိုမှထွက်ရန်လက်ျာယူမည့်အခြေအနေကိုဘို့ပေး။
ဂျာဗားသံသရာများအတွက်ကြေငြာခဲ့သည်နှင့်ဤလမ်းစေခြင်းငှါ: {} (;;) သည်။ ဒီအနှောင့်အယှက်များအထူးအခွအေနနဲ့အဆုံးမဲ့ကွင်းဆက်၏ပုံမှန်ဥပမာတစ်ခုဖြစ်သည်။ ကြောင်းအကြောင်း, Interrupt သံသရာ၏ဤကြင်နာတတ်ပုံကိုကျနော်တို့ကိုအနည်းငယ်အကြာတွင်ဆှေးနှေးပါမညျ။
အသီးအသီးအဘို့စတိုင်သံသရာ
Foreach ဂျာဗားသံသရာအစဉ်အမြဲဒြပ်စင်သို့မဟုတ်မည်သည့်၏ခင်းကျင်း၏ sequential စုစည်းခြင်းအသုံးပြုသည် ဒေတာအဆောက်အဦများ နှင့်၎င်းတို့အပေါ်အချို့သောထပ်တလဲလဲစစ်ဆင်ရေးလုပ်ဆောင်။ အော်ပရေတာပုံစံများများအတွက်ပေးထားသောဥပမာအားအောက်တွင်ဖော်ပြထားသောတင်ပြကြသည်:
တစ်ဦးကြားမှာ variable ကိုကြေညာနာမကိုအမှီပြုသကဲ့သို့ယခင်ကကြေညာအမည်များကိုခင်းကျင်းတန်းအော်ပရေတာဒုတိယအငြင်းအခုံလုပ်ဆောင်တယ်။ အားလုံး၎င်း၏ဒြပ်စင်ထုတ်ယူခဲ့ကြသည်အထိ variable ကိုအမည်အားတခြားခင်းကျင်း၏တစ်ဦးချင်းစီဒြပ်စင်များ၏တန်ဖိုးများကိုယူပါလိမ့်မယ်။ ဒါဟာ variable ကိုအမျိုးအစားစစ်ခင်းကျင်းထဲမှာသိမ်းထားတဲ့ဒြပ်စင်အမျိုးအစားနှင့်သဟဇာတဖြစ်ရမည်ဟုသတိပြုသင့်ပါတယ်။ ဒါ့အပြင်အဆိုပါ variable ကိုအမည်ဖြင့်စာဖတ်ခြင်းများအတွက်သီးသန့်ရရှိနိုင်ပါသည်နှင့်ကခင်းကျင်းထဲတွင်ဒြပ်စင်တစ်ခုပြောင်းလဲမှုဖို့ဦးဆောင်လမ်းပြမည်မဟုတ်ပြောင်းလဲပစ်ရန်ကြိုးစား။
အော်ပရေတာသံသရာပြတ်တောက်
, ကိုချိုးဖျက်ပြန်လာနှင့်ဆက်လက်: သုံးခုအော်ပရေတာသံသရာ interrupts ရှိပါတယ်။ ပထမဦးဆုံးနှစ်ဦးကိုသာလက်ရှိကြားမှာ interrupts လုံးဝအလုပ်သံသရာကြားဖြတ်နိုင်ဖြစ်ကြသည်ကို၎င်း, အလုပ်လုပ်မှဆက်လက်။ သငျသညျ, Java ၏သင့် code ကိုရည်ရွယ်ချက်ရှိရှိအဆုံးမဲ့သံသရာအတွက်အသုံးပြုနေသည်ဆိုပါကဤအော်ပရေတာအထဲတွင်ပစ္စုပ္ပန်ဖြစ်ရပါမည်။ ချိုးသုံးပြီးတစ်ရိုးရှင်းတဲ့ဥပမာစဉ်းစားကြည့်ပါ:
ဒီကြေညာချက်သာ 8 တန်ပြန်ဈ, ကိုယ်ခန္ဓာကိုတစ်ဦးချိုးကြေညာချက်ရှိပါတယ်ရသောအလုပ်အခွအေနေ 7 ညီမျှအခါကြောင့်ကွပ်မျက်ခံရ 11 ကြားမှာများအတွက်ထောက်ပံ့ပေးလျက်ရှိသည်ပေမယ့်။
ပြန်လာအော်ပရေတာကဂျာဗား၏ output ကိုသံသရာကိုထောက်ပံ့ပေးပေမယ့်လည်းဒီသံသရာထဲမှာထည့်ထားသောနည်းလမ်းကနေမသာသောခြားနားချက်နှင့်အတူအလားတူလမ်းအတွက်လုပ်ကိုင်လျက်ရှိကြောင်းသိရသည်။
ကို goto အဖြစ်ချိုးအသုံးပြုခြင်း
ဒါဟာချိုးဆိုလိုသည်မှာသာသံသရာသူကိုတိုက်ရိုက်ဖြစ်သော၏အလောင်းတော်ကို, interrupts ကြောင့်စိတ်တွင်ဘွားမြင်ရပါမည်, သင်တစ်ဦးအသိုက်ကွင်းဆက်အတွက်အသုံးပြုရန်လျှင်, ပြင်ကွင်းဆက်က၎င်း၏အလုပ်ကိုရပ်တန့်မည်မဟုတ်။ ဒီလိုလုပ်ဖို့ချိုးကြေညာချက်ကို goto တစ်ဦးယဉ်ကျေးပုံစံအဖြစ်အသုံးပြုနိုင်ပါသည်။
ဒီဂျမှာအော်ပရေတာဒါပေမယ့်လည်းမဆို code ကိုပိတ်ပင်တားဆီးမှုကနေမသာသံသရာ၏ output ကိုစုစည်းဖို့ခွင့်ပြုထားတဲ့တံဆိပ်, နှင့် တွဲဖက်. အသုံးပြုသည်။ အဆိုပါတံဆိပ်သင့်လျော်စွာပြုလုပ်ပြီးနောက်အူမကြီးနှင့်အတူအမှတ်အသားအမည်ရှိဖြစ်ပါတယ်။ တံဆိပ်အမှတ်အသားပြုထားသည်ကုဒ်ပိတ်ပင်တားဆီးမှုရဲ့အစမှာကြေငြာသည်။ ချိုး imya_metki: တစ်အမည်တပ်ထားသောဘလောက်၏ကွပ်မျက်ကြားဖြတ်စေရန်, လက်ျာအရပ်ဌာန၌သင်တို့ကိုကြေညာရန်ရှိသည်။ အောက်ကဥပမာကိုသုံးသပ်ကြည့်ပါ:
code ကိုများတွင်အသီးသီးတံဆိပ်များတစ်ခုမှာ, နှစ်ဦးနှင့်သုံးအတူသုံးလုပ်ကွက်များ၏အမည်များကြေညာခဲ့သည်။ အားလုံးသုံးလုပ်ကွက်များတွင် embedded တံဆိပ်နှစ်ဦးနှင့်အတူတစ်ချိုးကြေညာချက်ပေမယ့်သုံးခြင်းနှင့်နှစ်ဦးလုပ်ကွက်ထဲက program တစ်ခုအစပျိုးခြင်းနှင့်တစ်ခုမှာယူနစ်အတွက်အကောင်အထည်ဖော်ရန်ဆက်လက်လုပ်ဆောင်ပါလိမ့်မယ်။ ဆိုလိုသည်မှာ သုံးနှင့်တစ်: console ကိုငါတို့သည်နှစ်ခုမက်ဆေ့ခ်ျကိုမြင်ရပါလိမ့်မယ်။
ကောက်ချက်
ကျနော်တို့အသီးသီးစဉ်နှင့်အဓိကအော်ပရေတာအဖြစ် Do-နေချိန်မှာသူတို့ရဲ့ပုံစံများအဘို့နှင့်တစ်ဦးချင်းစီအဘို့, ဂျာဗား၌သံသရာ၏အယူအဆနှင့်ရင်းနှီးကျွမ်းဝင်ကြသည်။ ပိုကောင်းတဲ့နားလည်မှုငါတို့သည်အမျိုးမျိုးသောပုံစံများတွင်ဤအော်ပရေတာများအသုံးပြုခြင်းနှင့်အတူလေ့ကျင့်ခန်းလုပ်ဖို့အကြံပြုအဖြစ်သူတို့ကိုကြားဖြတ်နှင့်တယောက်ကိုတယောက်ပိတ်ပင်တားဆီးမှုကနေပြောင်းရွှေ့ဖို့ကွဲပြားခြားနားတဲ့နည်းလမ်းတွေ။
Similar articles
Trending Now