While পাতলা ডাইল
মেসের পাতলা ডাইল কয়েক লেয়ারে থাকে। সবার ওপরে ভাসে হালকা তেল, তারপর বাগাড় দেয়া একটা-দুইটা মাইক্রোস্কপিক সাইজের পেঁয়াজ বা রসুন টুকরা। এরপর চার লেয়ারের পানি। আর সবার তলায় থাকে দুই দানা ডাল। যে ডাল হয়তো কম উচ্চতার ঘন ডাল হতে পারত। সেটাকেই পানি দিয়ে অনেক উচা, লম্বা, বড় পাতিলের পাতলা ডাল বানাই ফেলছে। while লুপও তেমন লুপ জিনিসটাকে মাল্টি লেয়ারে বানাই ফেলে।
মনে করে দেখ, লুপ লেখার সময় for-এর ভিতরে of লিখলে হয় for of লুপ। আর লুপ লিখতে গিয়ে যদি while দিয়ে লিখতে হয়, তখন সেটাকে বলে while লুপ। আর এই while লুপ লিখতে পাঁচটা জিনিস লাগে।
১. প্রথমেই একটা লুপ ভেরিয়েবল ডিক্লেয়ার করতে হবে। এই ভেরিয়েবলের একটা প্রাথমিক মান থাকবে। আর লুপ চলতে চলতে এই ভেরিয়েবলের মান পরিবর্তন হবে। লুপ চালানোর জন্য যে ভেরিয়েবল ডিক্লেয়ার করা হয়, তাকে সাধারণত loop variable বলে।
২. while লিখতে হবে। এরপর প্রথম ব্র্যাকেট ( ) দিতে হবে।
৩. ব্র্যাকেটের ভিতরে একটা শর্ত থাকবে। শর্ত দিয়ে লুপ ভেরিয়েবলের মান চেক করা হয়। যদি শর্ত সত্য হয়, তাহলে লুপ চলতে থাকবে। চলতে চলতে লুপ ভেরিয়েবলের মান চেইঞ্জ হতে থাকবে। আর চেইঞ্জ হতে হতে এক সময় শর্ত মিথ্যা হয়ে যাবে। তখন আর লুপ চলবে না। অর্থাৎ শর্ত সত্য হলে লুপ চলবে, আর শর্ত মিথ্যা হলে লুপ বন্ধ হয়ে যাবে।
৪. লুপের ভিতরে এক বা একাধিক লাইনের কোড। যেটা লুপ যতবার চলবে, ততবার এই কোড চলবে।
৫. লুপের ভিতরে অন্য কোডের পাশাপাশি লুপ ভেরিয়েবলের মান পরিবর্তন করতে হবে। না করলে লুপের শর্ত সব সময় সত্য থেকে যাবে, আর লুপ আজীবন চলতে থাকবে।
এখন যদি আমরা একটা স্ট্রাকচার বা স্টাইল দেখি। এইটা কোড না, কোড লেখার স্টাইল।
Declare a loop variable with an initial value
while(loop condition){
Repetitive tasks
Change the value of the loop variable
}স্ট্রাকচারটা পুরাপুরি বুঝতে পারবি, যদি ফটাফট কয়েকটা উদাহরণ দেখে ফেলস—
তাই প্রথমে let দিয়ে একটি ভেরিয়েবল ডিক্লেয়ার করব। let দিয়ে ভেরিয়েবল ডিক্লেয়ার করার কারণ হচ্ছে, এই ভেরিয়েবলের মান চেইঞ্জ হবে। যদি let দিয়ে ডিক্লেয়ার না করে const দিয়ে ভেরিয়েবল ডিক্লেয়ার করি, তাহলে এই ভেরিয়েবলের মান চেইঞ্জ করা যাবে না। তাই আগেভাগেই let দিয়ে ডিক্লেয়ার করে ফেললাম।
তারপর স্পেশাল কি-ওয়ার্ড while() ব্যবহার করব। এর ভেতরে একটি কন্ডিশন দিবি। যেমন: num < 5 যেটা একটা শর্ত। এই শর্ত দিয়ে বুঝানো হচ্ছে, লুপ এক একবার চলে num ভেরিয়েবলের মান চেক করবে। যদি num ভেরিয়েবলের মান 5-এর কম হয়, তাহলে লুপ চলবে। যদি কখনো 5-এর কম না হয়, অর্থাৎ 5-এর সমান বা বেশি হয়, তখন শর্ত মিথ্যা হয়ে যাবে, আর লুপ বন্ধ হয়ে যাবে।
তারপর সেকেন্ড ব্র্যাকেটের ভিতরে প্রথমে console.log(num); লিখছি। যাতে প্রত্যেকবার লুপ চলে প্রত্যেকবার num ভেরিয়েবলের মান আউটপুট হিসেবে দেখায়। তারপর একটা স্পেশাল লাইন আছে num = num + 1; যেটা দিয়ে num ভেরিয়েবলের মান চেইঞ্জ করা হচ্ছে। এটা আমরা একটু পরে আলোচনা করব।
let num = 0;
while (num < 5) {
console.log(num);
num = num + 1;
}
Output: 0 1 2 3 4এখানে একদম প্রথমে num-এর মান 0 ছিল, তখন while লুপের কন্ডিশনটি num <5 সত্যি ছিল। কারণ, 0 অবশ্যই 5-এর চাইতে ছোট। তাই লুপের ভিতরে ঢুকে num-এর মান প্রিন্ট করল বা console log করে আউটপুট দেখাল। এরপর num = num + 1-এর মাধ্যমে num-এর মান 1 বাড়বে।
কারণ, সমান চিহ্নের ডানপাশে আছে num + 1
এইটার মানে হচ্ছে, num-এর মান আছে 0, আর 0-এর সাথে 1 যোগ করবে। যোগফলটা বের করবে। যোগফল হবে 1। কারণ, 0-এর সাথে 1 যোগ করলে যোগফল হয় 1।
num = num + 1
num = 0 + 1
num = 1 অর্থাৎ num = num + 1 দিয়ে num ভেরিয়েবলের মান 1 বাড়বে।
তুই চাইলে num = num + 1-এর পরিবর্তে num += 1 অথবা num++ দিয়েও num-এর মান বাড়াতে পারোস। তিনটাই একই কাজ করে।
এইভাবে লুপ চলতে চলতে লুপের ভিতরে যতবার num = num + 1-এ যাবে, ততবার num-এর মান এক এক করে বাড়বে। লুপ ভেরিয়েবল num-এর মান বাড়ার পর লুপ গিয়ে শর্ত চেক করবে। শর্ত সত্য হলে লুপের ভিতরে যাবে। লুপের ভিতরে যেসব কাজ আছে, সেগুলা করে একসময় num = num + 1 পেয়ে num ভেরিয়েবলের মান এক বাড়াবে। তারপর আবার লুপের শর্তের কাছে গিয়ে চেক করবে।
এইভাবে চলতে চলতে আর লুপ ভেরিয়েবল এর মান বাড়তে বাড়তে এক সময় num এর মান 5 হয়ে যাবে তখন লুপের শর্ত num < 5 এর শর্ত মিথ্যা হয়ে যাবে। তারপর লুপ চলা বন্ধ হয়ে যাবে।
এখন কেউ যদি তোকে বলে, তুই তোর স্কুলের নাম পাঁচবার প্রিন্ট কর, তাহলে তুই খুব সহজেই একটি while লুপ লিখে তা করতে পারবি।
let num = 0;
while (num < 5) {
console.log("Bamboo Eating High School");
num++;
}
Output:
Bamboo Eating High School
Bamboo Eating High School
Bamboo Eating High School
Bamboo Eating High School
Bamboo Eating High Schoolতুই while loop সম্পর্কে একটি প্রাথমিক ধারণা পাইলি। এইবার ফটাফট কয়েকটা সিম্পল সিম্পল সিচুয়েশনে এই জিনিসটা প্র্যাকটিস করে ফেল।
JavaScript While Practice:
- while লুপ দিয়ে 10 বার কনসোল লগ কর। আমি প্রতিদিন মিনিমাম 3 ঘণ্টা করে প্রোগ্রামিং প্র্যাকটিস করব।
- তুই 1 থেকে 20 পর্যন্ত সংখ্যা লিখবি একটা while লুপ দিয়ে।
- while লুপ দিয়ে 50 থেকে 100 পর্যন্ত সংখ্যা প্রিন্ট কর।
- একটি while লুপ দিয়ে 1 থেকে 10 পর্যন্ত সংখ্যাগুলো প্রিন্ট করার সময় সংখ্যাগুলাকে 3 দিয়ে গুণ করে ফেলবি। তাহলে কিন্তু 3-এর নামটা হয়ে যাবে।
- একটি while লুপ দিয়ে 111 থেকে 110 পর্যন্ত সংখ্যাগুলো প্রিন্ট করার সময় সংখ্যাগুলাকে 2 দিয়ে ভাগ করে ফেলবি।