PHP ရှိ continue ညွှန်ကြားချက်
Loop အလုပ်ကို ရပ်တန့်စေတဲ့ break ညွှန်ကြားချက် အပြင်၊
loop ၏ နောက်ထပ် iteration အသစ်ကို စတင်စေတဲ့
continue ညွှန်ကြားချက်လည်း ရှိပါတယ်။
ကုဒ်ကို ရိုးရှင်းအောင် ပြုလုပ်ရာမှာ ဒီညွှန်ကြားချက်က တစ်ခါတစ်ရံ အသုံးဝင်နိုင်ပေမယ့်၊
လက်တွေ့မှာတော့ ၎င်းမပါဘဲလည်း ပြဿနာကို ဖြေရှင်းနိုင်ပါတယ်။
လက်တွေ့ဥပမာတစ်ခုကြည့်ကြရအောင်။
နံပါတ်တွေပါတဲ့ array တစ်ခု ရှိတယ်ဆိုပါစို့။
Loop နဲ့ ဖြတ်ပြီး 2 နဲ့စားလို့ပြတ်တဲ့ နံပါတ်တွေကို
စတုရန်းကိန်းတင်ကာ မွန်ကွန်တာမှာ ပြသပါမယ်၊
ပြီးတော့ 3 နဲ့စားလို့ပြတ်တဲ့ နံပါတ်တွေကို
ကုဗကိန်းတင်ကာ မွန်ကွန်တာမှာ ပြသပါမယ်။
ဖော်ပြထားတဲ့ ပြဿနာအတွက် အဖြေကတော့ ဒီလိုပါ။
<?php
$arr = [1, 2, 3, 4, 5, 6, 7, 8, 9];
foreach ($arr as $elem) {
if ($elem % 2 === 0) {
$res = $elem * $elem;
echo $res;
} elseif ($elem % 3 === 0) {
$res = $elem * $elem * $elem;
echo $res;
}
}
?>
မြင်တဲ့အတိုင်းပါ၊ echo $res စာကြောင်းက
နှစ်ကြိမ် ထပ်နေပါတယ်။ ဒါကို if
အပြင်ဘက်ကို ထုတ်ကြည့်ပါမယ်။
<?php
$arr = [1, 2, 3, 4, 5, 6, 7, 8, 9];
foreach ($arr as $elem) {
if ($elem % 2 === 0) {
$res = $elem * $elem;
} elseif ($elem % 3 === 0) {
$res = $elem * $elem * $elem;
}
echo $res; // အခြေအနေအပြင်ဘက်ကို ထုတ်ပြီး
}
?>
ဒါပေမယ့် အခု ကျွန်ုပ်တို့ရဲ့ script က နည်းနည်းလေး
မတူဘဲ အလုပ်လုပ်နေပါပြီ။ ရလဒ်အနေနဲ့ ပုံမှန်အစိတ်အပိုင်းတွေအတွက်၊
ကျွန်ုပ်တို့ရဲ့ if ကနေ မကိုင်တွယ်ဘဲ
$res ကိန်းရှင်ကို မွန်ကွန်တာမှာ ပြသမှာဖြစ်ပြီး၊
ဒါက ကျွန်ုပ်တို့ရဲ့ ပြဿနာ အခြေအနေအရ မလိုအပ်ပါဘူး။
ပြဿနာကို ပြင်ဆင်ဖို့၊ ကျွန်ုပ်တို့ရဲ့ if ကို
else အခြေအနေတစ်ခု ထပ်ထည့်ပါမယ်၊
ဒါက 2 နဲ့ 3 နဲ့စားလို့မပြတ်တဲ့ အစိတ်အပိုင်းတွေအတွက်
အလုပ်လုပ်ပါမယ်၊ ပြီးတော့ continue ညွှန်ကြားချက်ကို ခေါ်ပါမယ်၊
ဒါက ကျွန်ုပ်တို့ကို ချက်ချင်း loop ၏ iteration အသစ်ကို ခုန်ကျော်စေပါလိမ့်မယ်။
<?php
$arr = [1, 2, 3, 4, 5, 6, 7, 8, 9];
foreach ($arr as $elem) {
if ($elem % 2 === 0) {
$res = $elem * $elem;
} elseif ($elem % 3 === 0) {
$res = $elem * $elem * $elem;
} else {
continue; // loop ၏ iteration အသစ်ကို ပြောင်းသွားပါမယ်
}
echo $res; // 2 သို့မဟုတ် 3 နှင့် စားလျှင်မှ လုပ်ဆောင်မည်
}
?>
1 မှ 100 အထိ
စုံကိန်းများကိုသာ ပြသတဲ့ loop တစ်ခုကို ရေးပါ၊
မကိန်းများကို continue သုံးပြီး ကျော်ပါ။