আসসালামু আলাইকুম। কেমন আছো সবাই? আশা করি তোমরা অনেক ভালো আছো। শীতের আমেজ কেমন লাগছে? হাড় কাঁপানো ঠান্ডায় নতুন বছরের আগমনে আশা করি সবার মন ফুরফুরে আছে। ঠান্ডায় ওজু করার ভয়ে নামাজ বাদ দিও না যেন। শীতে কনকনে ঠান্ডায় কাঁথা কম্বলের ভেতর থেকে উঠতে কার-ই বা মন চায় বলো। কিন্তু আমাদের ঈমান মজবুত করার জন্য এটাই সবথেকে ভালো সুযোগ। কঠিন ঠান্ডায় কাঁপতে কাঁপতে উঠে ঠান্ডা পানি দিয়ে ওজু করে নামাজ আদায় করতে পারাটাই আমাদের সার্থকতা।
অনেক গল্প হলো এখন কাজের কথায় আসি। গত পর্বে আমরা switch case সম্পর্কে আলোচনা করেছিলাম। switch case কীভাবে ব্যবহার করতে হয়, if else এর পরিবর্তে switch case ব্যবহার করে কীভাবে আরও সুন্দর করে কোডকে সাজানো যায় তা নিয়ে পড়াশোনা করেছিলাম। switch case এ প্রথমে switch (expression) দিয়ে আমাদের condition দিয়ে দিতে হবে। তারপর যতগুলো possible case সম্ভব তার জন্য আলাদা আলাদা case লিখতে হবে এবং কোনো case এর কাজ শেষ হলে break statement দিয়ে আমরা switch case থেকে বের হতে পারি।
আজকে আমরা loop নিয়ে আলোচনা করবো। মনে করো, তুমি ৫ এর নামতা calculate করে print করতে চাচ্ছো। তার জন্য তোমাকে প্রথমে ঠিক করতে হবে কত পর্যন্ত তুমি calculate করতে চাচ্ছো। এক্ষেত্রে মনে করো তুমি ১০ পর্যন্ত গুনতে চাচ্ছো। তাহলে তোমার কোডটা কেমন হবে? নিশ্চই বুঝতে পারছো তোমাকে cout<<5*1<<endl; cout<<5*2<<endl; এভাবে করে cout<<5*10<<endl; পর্যন্ত গুনতে হবে। তোমাদের মনে কি প্রশ্ন জেগেছে, যদি ১০০ বা ১০০০ পর্যন্ত গুনতে হয় তাহলে কী করতে হবে? না, তোমাদেরকে বসে বসে ১০০০ বার cout লিখতে হবে না। এই রকম সমস্যা যেখানে একটা নির্দিষ্ট সময় পর্যন্ত বারবার একই কাজ করতে হয়, এই কাজকে আরও সহজ করার জন্য loop ব্যবহার হয়ে থাকে।
Loop হচ্ছে এমন একটা process যেখানে একটা নির্দিষ্ট condition fulfill না হওয়া পর্যন্ত একটা block of code কে বারবার execute করতে থাকে। প্রতিবার কোড execution কে একটা iteration বলে। Loop যতবার চলবে iteration ততবার হবে। C++ এ আমরা সাধারণত ৩ ধরনের loop দেখে থাকি। for loop, while loop আর do while loop|
For loop ব্যবহার করা হয় যখন আমরা জানি আমাদের কতো বার loop চালাতে হবে। যেমন ৫ এর নামতা তুমি ১০ পর্যন্ত গুনতে চাচ্ছো। তার মানে তুমি ১০ বার loop চালাতে চাচ্ছো। এক্ষেত্রে for loop ব্যবহার করা যেতে পারে। এমনভাবে যদি আমাদের জানা থাকে বা user থেকে আমরা input নিয়ে কতো বার loop চলবে তা ঠিক করতে পারি তাহলে আমরা for loop ব্যবহার করবো।
Syntax:
for (starting condition ; ending condition ; increment or decrement ) {
// code block to be executed
}
তাহলে ৫ এর নামতা হবে :
for (int i=1 ; i<=10 ; i++ ) {
count<<Ó5*Ó<<i<<Ó=Ó<<5*i<<endl;
}
ভয় পাবার কোনো কারণ নেই। আস্তে আস্তে আমরা কোডকে চুলচেরা বিশ্লেষণ করবো।
Starting Condition : Starting condition বলতে বোঝায় কোথা থেকে আমরা loop এর কাজ শুরু করবো। ধরো ৫ এর নামতা যখন আমরা গুনবো তখন তো আমরা 5*1=5,5*2=10 এভাবে শুরু করি। তাহলে এখন বলো এক্ষেত্রে আমাদের starting condition কী হবে? হ্যাঁ, ঠিক ধরেছো। যেহেতু আমরা ১ থেকে নামতা শুরু করবো তাই starting condition হবে ১। Condition এ কোনো number লেখা যায় না। তাই প্রথমে starting value কে একটা variable এ store করতে হবে। এটা for loop এর ভেতরেও করা যায় যেমনটা ওপরে দেখানো হয়েছে। আবার আগে variable declare করে পরে loop এ লেখা যায়।
int i =1;
for ( i ; ……………….)
Ending Condition : Ending condition বলতে বোঝায় কোথায় গিয়ে আমরা loop এর কাজ শেষ করবো। ৫ এর নামতার ক্ষেত্রে আমরা ১০ পর্যন্ত গুনতে চাচ্ছি। তাহলে এবার বলো আমাদের ending condition কী হবে? অবশ্যই এটা ১০ হবে। মনে রাখতে হবে এখানে কিন্তু একটা condition হবে। কোথায় আমরা থামতে চাচ্ছি তার জন্য।
if( int i=1 ; i < = 10 ; ………) // loop will run when ÔiÕ is less than or equal 10 and stop when I is greater than 10
Increment or decrement : আচ্ছা, তোমাদের মনে কি প্রশ্ন এসেছে, এই যে আমরা loop এর starting আর ending value বের করলাম সেই হিসেবে প্রথমে হবে ৫*১ আর শেষে ৫*১০ হবে। কিন্তু ৫*২ , ৫*৩ , ৫*৪ এগুলো program কীভাবে বুঝবে? আমরা জানি কম্পিউটার নিজে থেকে কিছু করতে পারে না। তাকে আগে সব শিখিয়ে দিতে হয়। তাই program কে বলে দিতে হবে সে প্রতিবার কত করে বাড়বে বা কমবে। এক্ষেত্রে ১,২,৩ … এভাবে করে বাড়ছে মানে প্রতিবার ১ করে বাড়ছে।
if (int i=1; i < = 10; i = i+1 ) // each iteration increase by 1
যদি কখনো তোমার মনে হয় তুমি শুধুমাত্র জোড় সংখ্যাগুলোর গুনফল দেখতে চাচ্ছো ২ – ২০ পর্যন্ত। মানে প্রথমে ২ তারপর ৪,৬,৮…………তাহলে প্রতিবার ২ করে বাড়বে।
আশা করি তোমাদের for loop সম্পর্কে কিছুটা ধারণা হয়েছে। এখন তোমাদের for loop দিয়ে আরও কীভাবে কাজ করা যায় সম্পর্কে idea বাড়ানোর জন্য আরও বেশি বেশি practices দরকার। আচ্ছা তোমাদেরকে একটা কাজ দেই। তোমাদের কাজ হলো ৫ এর নামতা ১০ থেকে ১ পর্যন্ত উল্টো print করা আর ১ থেকে ১০০ পর্যন্ত জোড় সংখ্যা print করা। পরবর্তী পর্বে আমরা c++ এর বাকি loop গুলো নিয়ে আলোচনা করবো ইনশাআল্লাহ।