পাইথন – while

একই কোড বার বার রান করানোর জন্য while লুপ ব্যবহার করা হয়। একটি কন্ডিশন দেওয়া হয়, যদি কন্ডিশনটি সত্য হয়, তাহলে while লুপের ভেতরে থাকা কোড গুলো রান হবে। যদি কন্ডিশনটি মিথ্যে হয়, তাহলে while লুপের ভেতরের কোড গুলো রান হবে না। while লুপের সাধারণ ফরম হচ্ছেঃ

while expression:
     statement 1
     statement 2 
     statement 3
     ....  

expression বলতে একটা কন্ডিশন দেওয়া হয়। যেটা হয় সত্য হবে না হয় মিথ্যে। যতক্ষণ পর্যন্ত এই কন্ডিশনটি সত্য হবে, ততক্ষন পর্যন্ত while লুপটি চলবে। ছোট্ট একটা প্রোগ্রাম লিখিঃ

a = 1
while a < 10: 
     print (a)
     a=a+1
print "all done!"

আমাদের এই প্রোগ্রামটি 1 থেকে 9 পর্যন্ত নাম্বার গুলো প্রিন্ট করবে। এবং শেষে প্রিন্ট করবে al done!

while a < 10 এখানে a < 10 হচ্ছে আমাদের কন্ডিশন। আমরা প্রথমে a = 1 ধরে নিয়েছি। যখন প্রোগ্রামটি রান হবে, তখন কন্ডিশনে এসে দেখবে a এর মান 10 থেকে ছোট। তাই এর পরে থাকা statement গুলো এক্সিকিউট করবে। আমাদে এখানে দুইটা statement রয়েছে, একটা দিয়ে a এর মান প্রিন্ট করেছি। আরেকটা statement দিয়ে a এর মান এক বাড়িয়ে নিয়েছি। a = a + 1 মানে a এর আগের মানের সাথে 1 যুক্ত করে a এর মধ্যে এসাইন করা। এটাকে আরো সর্ট ভাবে এভাবেও লেখা যায়ঃ a +=1 । a এর মান এক বাড়িয়ে নেওয়ার কারনে এখন a এর মান হচ্ছে 2

এ দুইটা স্টেটমেন্ট রান হওয়ার পর আবার while লুপের কন্ডিশনটি চেক করবে। a এর 2, মানে 10 থেকে ছোট। তাই আবার while লুপের ভেতরে থাকা statement দুইটি রান হবে। প্রথমে a এর মান প্রিন্ট করবে, তা হচ্ছে 2. এর পর আবার a এর মান এক বাড়িয়ে নিবে।

পরের ধাপে এসে একই কাজ কবে। এভাবে ৯ বার লুপটি রান হবে। নয় বার লুপটি রান শেষে a এর মান হবে 10, তখন আবার কন্ডিশনটি দেখবে। a কি 10 থেকে ছোট। তখন দেখবে, না a এর মান 10 থেকে ছোট নয়। তাই while লুপের ভেতরে আর প্রবেশ করবে না। লুপ থেকে বের হয়ে যাবে। লুপের পরে আমরা আরেকটা statement লিখেছি। লুপ থেকে বের হয়ে তা প্রিন্ট করবে। print “all done!”

এখানে while a < 10: এ 10 এর পরিবর্তে অন্য কোন নাম্বার বসিয়ে টেস্ট করে দেখতে পারো।print (a) এর পরিবর্তে অন্য যে কোন কিছু প্রিন্ট করে দেখতে পারো।

আমরা আরেকটা প্রোগ্রাম লিখতে পারি। ছোট বেলায় দুষ্টুমি করলে মাঝে মাঝে শিক্ষক বা বাড়িতে তো ১০০ বার লিখতে দিত, “আমি আর দুষ্টুমি করব না।” তখন যদি আমরা প্রোগ্রামিং জানতাম, আমাদের এত কষ্ট করতে হতো না। কয়েক লাইনের কোড লিখলেই ১০০ বার লেখা হয়ে যেতো। চাইলে তখন ১০০০ বার বা ১লক্ষ বার ও লিখে দেওয়া যেত। while লুপ দিয়ে এই প্রোগ্রামটি লিখি। প্রোগ্রামের ভেতর বাংলিশে লিখলাম “ami r dustumi korbo na”

number = 1
while number < 100:
     print "ami r dustumi korbo na"
     number +=1
print "all done!"

প্রোগ্রামটি রান করলে দেখব, কনসোলে ১০০ বার লেখা উঠে, আমি আর দুষ্টুমি করব না।
এখানে এর আগের প্রোগ্রামের মত একই কাজই করা হয়েছে। আগের প্রোগ্রামে নাম্বার ভ্যারিয়েবলটি প্রিন্ট করা হয়েছে। এখন প্রিন্ট করা হয়েছে একটি স্টিং।
প্রতিবার স্টিংটি প্রিন্ট করার পর number ভ্যারিয়েবল এর মান এক করে বাড়িয়ে দেওয়া হয়েছে। এবং while লুপের প্রথমে গিয়ে কন্ডিশনটি চেক করা হয়েছে। যতক্ষন পর্যন্ত দেখল number এর মান ১০০ থেকে ছোট বা সমান, ততক্ষণ পর্যন্ত লুপটি চলেছে। এবং যখনি number এর মান ১০১ এক হয়েছে, তখন লুপের কাজ শেষ হয়েছে।

while লুপ দিয়ে আরেকটি প্রোগ্রাম লিখতে পারি। 1 থেকে 100 পর্যন্ত বেজোড় সংখ্যা গুলো প্রিন্ট করতে পারি। নিচের প্রোগ্রামটি দেখিঃ

number  = 1
while number <= 100:
     print (number) 
     number=number+2

এক এর থেকে দুই যোগ করলে হবে তিন। একটা বিজোড় সংখ্যা। তিনের সাথে আবার দুই যোগ করলে হবে ৫, আরেকটি বিজোড় সংখ্যা। এভাবে প্রতিবার ভ্যারিয়েবল এর মান দুই বাড়িয়ে দিলেই আমরা বিজোড় সংখ্যা গুলো পেতে পারি। উপরের প্রোগ্রামে সে কাজটিই করা হয়েছে। number = number + 2; দিয়ে প্রতিবার নাম্বার ভ্যারিয়েবলটির মান দুই করে বাড়িয়ে দেওয়া হয়েছে।
প্রথমে ভ্যারিয়েবলটির মান ছিল 1, int number = 1; এর কথা বলছি। এরপর লুপের ভেতরে ঢুকলো। এবং কন্ডিশন চেক করা হল। যেহেতু কন্ডিশন সত্য, তাই লুপের ভেতরের কোড গুলো রান করল। number টি প্রিন্ট করল। পরের লাইনে number ভ্যারিয়েবল টির মান দুই বাড়িয়ে দেওয়া হলো। এভাবে এক সময় যখন দেখল number ভ্যারিয়েবলটির মান 100 থেকে বেশি হয়ে গেলো, তখন লুপটি কাজ করা শেষ করল।

উপরের প্রোগ্রামটিকে একটু মডিফাই করেই তো জোড় সংখ্যা গুলো বের করতে পারি তাই না? তাহলে তা করে ফেলো।


Leave a Reply

Your email address will not be published. Required fields are marked *