হোয়াইল লুপে else এর ব্যবহার

লিখেছেন: কাজী মুশফিকুর রহমান || সফটওয়্যার প্রকৌশলী, টেকনিয়াস (সফটওয়্যার নির্মাণ প্রতিষ্ঠান) || তারিখঃ 29 এপ্রি., 2024


পাইথনে While-else  অনেকটা for-else এর মতই কাজ করে। for-else এর ক্ষেত্রে যেমনি ফর লুপ শেষ হওয়ার পরে else ব্লক এক্সিকিউট হয়, তেমনি হোয়াইল লুপের ক্ষেত্রেও লুপ শেষ হওয়ার পরে else ব্লক কাজ করে। তবে if-else এর ব্যাপারটি একটু ভিন্ন, কারণ এক্ষেত্রে if এবং else এর যেকোন একটি ব্লক এক্সিকিউট হয়, উভয়টি নয়। এখন আমরা হোয়াইল লুপে else এর ব্যবহার দেখব।

কোড:

number = 10

while number > 5:

    print(number)

    number = number - 1

else:

    print('out of while loop')

 

উপরের কোডের প্রথম লাইনে আমি number ভ্যারিয়েবলের মধ্যে ভ্যালু  10 এসাইন করেছি। এটিই হছে হোয়াইল লুপের ইনিশিয়ালাইজেশন (initialization), অর্থাৎ শুরুতে একটি ভ্যারিয়েবলের মধ্যে ভ্যালু এসাইন করা। দ্বিতীয় লাইনে ‘while’ এর পরে একটি কন্ডিশন (number > 5) দিয়েছি। এর অর্থ হলো: নাম্বারটি যতক্ষন  5 এর বড় হয় ততক্ষন লুপটি চলবে, এবং তৃতীয় লাইনটি প্রিন্ট হবে। এখানে number  হচ্ছে কাউন্টার ভ্যারিয়েবল। চতুর্থ লাইনে number এর ভ্যালু ১ কমবে, এর পরে আবার দ্বিতীয় লাইনে গিয়ে কন্ডিশন চেক করবে। এই প্রক্রিয়া চলতে থাকবে যতক্ষণ না কন্ডিশন (টেস্ট এক্সপ্রেশন) False হয় (অর্থাৎ যতক্ষন  না নাম্বারটি 5 বা 5 থেকে ছোট হয়)। এখন কোডটি রান করলে নিচের মত আউটপুট দিবে।

আউটপুট:

10

9

8

7

6

out of while loo

 

কোডের ব্যাখ্যা

ইন্টারপ্রেটার এখান থেকে কোড পড়া শুরু করবে।

ইনিশিয়ালাইজেশন: number = 10,

ফার্স্ট ইটারেশন

কন্ডিশন চেক: যেহেতু নাম্বারটি (10), 5 থেকে বড়, (কন্ডিশনটি সত্য), তাই 10 প্রিন্ট হবে।

ডিক্রিমেন্ট (হ্রাস): number = number - 1  বা number = 10 - 1 বা number = 9।

সেকেন্ড ইটারেশন

কন্ডিশন চেক: যেহেতু নাম্বারটি (9), 5 থেকে বড়, (কন্ডিশনটি সত্য), তাই 9 প্রিন্ট হবে।

ডিক্রিমেন্ট: number = number - 1  বা number = 9 - 1 বা number = 8।

থার্ড ইটারেশন

কন্ডিশন চেক: যেহেতু নাম্বারটি (8), 5 থেকে বড়, (কন্ডিশনটি সত্য), তাই 8 প্রিন্ট হবে।

ডিক্রিমেন্ট: number = number - 1  বা number = 8 - 1 বা number = 7।

ফোর্থ ইটারেশন

কন্ডিশন চেক: যেহেতু নাম্বারটি (7), 5 থেকে বড়, (কন্ডিশনটি সত্য), তাই 7 প্রিন্ট হবে।

ডিক্রিমেন্ট: number = number - 1  বা number = 7 - 1 বা number = 6।

ফিফ্থ ইটারেশন

কন্ডিশন চেক: যেহেতু নাম্বারটি (6), 5 থেকে বড়, (কন্ডিশনটি সত্য), তাই 6 প্রিন্ট হবে।

ডিক্রিমেন্ট: number = number - 1  বা number = 6 - 1 বা number = 5।

সিক্সথ ইটারেশন

কন্ডিশন চেক: যেহেতু নাম্বারটি (5), 5 থেকে বড় নয়, (কন্ডিশনটি মিথ্যা), তাই 5 প্রিন্ট হবে না। বরং লুপটি শেষ হয়ে যাবে।

else ব্লকের এক্সিকিউশন:

হোয়াইল লুপ থেকে বের হয়ে else ব্লক এক্সিকিউট করবে এবং ‘out of while loo’ মেসেজটি প্রিন্ট করবে।