Understanding while-else in python

2236 views Nov 23, 2024

ကျွန်တေ်ာ ဒီပု့ိစ်မှာတော့ python ရဲ့ loop မှာ beginner တချို့သတိမထားမိတဲ့ while else ကိုမိတ်ဆက်ပေးပါမယ်။

while သည် looping ဖြစ်ပြီး syntax ကတော့

while <expr>:
        statement

အဲ့လိုရေးကြပါတယ်။အဲ့တော့ ကျွန်တော်တို့ သည် 1 ကနေ 10ထိထုတ်တဲ့ ပုံစံလေးရေးကြည့်မယ်ဆို

>>> n = 1
>>> while n <= 10:
...     print(n)
...     n += 1
... 
1
2
3
4
5
6
7
8
9
10
>>>

ဒါမျိုးတွေ့ရပါမယ်။Loop တစ်ခါပတ်တိုင်း၁တိုးပေးပါတယ်။ဒီမှာ beginner တွေအနေနဲ့ သိထားရမှာက  n<=10 ဆိုတဲ့ expression ပါပဲ။သူသည် n က ၁၀ ထက်ငယ် ဒါမှမဟုတ် ညီတဲ့အထိအလုပ်လုပ်မယ်လို့ပြောထားလို့ ကျွန်တော်တို့က ၁၀ထိရောက်တဲ့ ထိ n+=1 ဆိုပြီး ၁တိုးပြီး ထုတ်ကြည့်လိုက်တော့ result ထွက်လာတာပါ။ဒါပေမဲ့ ဒီမှာပြောချင်တာက loopအကြောင်းမဟုတ်ပါဘူး။while else အလုပ်လုပ်ပုံကို ပြောချင်တာပါ။example ကြည့်ရအောင်

>>> n = 1
>>> while n <= 10:
...     print(n)
...     n += 1
... else:
...     print("Else works")
... 
1
2
3
4
5
6
7
8
9
10
Else works
>>>

အပေါ်က exampleကိုကြည့်မယ်ဆို else သည် loop ကထွက်လာတဲ့အခါ အလုပ်လုပ်တာတွေ့ရမှာပါ။ဒါဆို အောက်ကလိုရေးတော့ရောဘာကွာလဲလို့မေးစရာရှိပါတယ်။

while <expr>:
        statement
print("Else works")

အခုလို else မခံပဲရေးလဲ အလုပ်လုပ်မှာပါပဲ။ဒါပေမဲ့ else သာမပါဘူးဆို သူသည် ဘာအကြောင်းကြောင်း  ကြောင့် loop ကရပ်သွားတာနဲ့ အလုပ်လုပ်မှာပါ။Else ကတော့လုပ်မှာမဟုတ်ပါဘူး။

>>> n = 1
>>> while n <= 10:
...     if n == 3:
...             break
...     print(n)
...     n += 1
... else:
...     print("Else works")
... 
1
2
>>> 

အပေါ်က example ကိုကြည့်မယ်ဆို 3 ကိုရောက်တာနဲ့ loop ကရပ်မှာပါ။အကယ်လို့ loop သည် အကြောင်းကြောင်းကြောင့် ရပ်သွားတယ်ဆို else က အလုပ်လုပ်မှာမဟုတ်ပါဘူး။else သည်  n <= 10 က မှားသွားတဲ့အခြေအနေရောက်မှ အလုပ်လုပ်ပါတယ်။ကျွန်တေ်ာတို့ n က ၁၁ ဖြစ်သွားတယ်ဆို n <= 10 ဆိုတာက မှားသွားတာမို့ loop ကနေ ထွက်သွားပြီး else ကအလုပ်လုပ်မှာပါ။အကယ်လို့သာ အောက်ကလို else မပါပဲရေးမယ်ဆို

n = 1
while n <= 10:
	if n == 3:
		break
	print(n)
	n += 1
 
print("Else works")

အောက်ကဆုံးက print(“Else works”) ဆိုတာသည် အလုပ်လုပ်နေမှာပါ။break လုပ်ပြီးloop ကနေ ထွက်လာလဲအလုပ်လုပ်နေမှာပါ။

အားလုံးကျေးဇူးတင်ပါတယ်။