লুপ (Loops)
লুপ কেন প্রয়োজন? (Why Loops?)
কল্পনা করুন আপনি একজন শিক্ষক এবং আপনার কাজ হলো ৩০ জন ছাত্রের খাতায় "খুব ভালো!" লিখে দেওয়া। আপনি নিশ্চয়ই নিজ হাতে এই কথাটি ৩০ বার লিখবেন না — বরং আপনি চাইলে একটি রাবার স্ট্যাম্প বা সিলমোহর বানিয়ে ব্যবহার করতে পারেন। লুপ হলো আপনার কোডের ক্ষেত্রে সেই একই স্ট্যাম্প। এগুলো প্রয়োজনের ওপর ভিত্তি করে নির্দিষ্ট কোডকে বারবার রিপিট (repeat) করে বা চালিয়ে দেয়।
জাভাস্ক্রিপ্টে বেশ কয়েক ধরনের লুপ আছে, যার প্রতিটির নির্দিষ্ট কাজে নিজস্ব সুবিধা রয়েছে:
for— যখন আপনি ঠিকঠাক জানেন যে এটি কতবার ঘোরাতে বা লুপ করতে হবেwhile— কোনো শর্ত মিথ্যা (false) না হওয়া পর্যন্ত লুপ করতে থাকলেdo...while— অনেকটা while এর মতোই, তবে এটি অন্তত একবার রান করার নিশ্চয়তা দেয়for...of— কোনো অ্যারে (বা ইটারেবল) থেকে এর ভ্যালু বা মানগুলোর ভেতর দিয়ে লুপ করতেfor...in— কোনো অবজেক্টের কী (key) বা প্রপার্টির ভেতর দিয়ে লুপ করতে
ক্লাসিক বা গতানুগতিক For লুপ (The Classic For Loop)
While এবং Do...While (While & Do...While)
একটি while লুপ শর্ত বা কন্ডিশন সত্য (true) থাকা পর্যন্ত চলতেই থাকে। এটি অনেকটা "স্যুপ ফোটা শুরু না হওয়া পর্যন্ত নাড়াচাড়া করতে থাকুন" বলার মতো। শুধু একটু সাবধানে থাকবেন — যদি শর্তটি কখনোই মিথ্যা বা false না হয়, তবে এটি একটি ইনফিনিট লুপ (infinite loop) তৈরি করবে আর আপনার প্রোগ্রামটি হ্যাঙ বা ফ্রিজ (freeze) হয়ে যাবে!
একটি do...while লুপ প্রায় একই রকমের, তবে পার্থক্য হলো এটি কোডগুলো একবার রান করানোর পর শর্ত যাচাই করে। ফলে এর ভেতরের কোডগুলো অন্তত একবার হলেও রান হবে — অনেকটা একটি রেস্টুরেন্টের মতো, যারা আপনাকে খাবারটি আরও নিতে চান কি না তার সিদ্ধান্ত নেওয়ার আগেই একবার পরখ করে দেখতে দেয়।
While এবং Do...While
For...Of এবং For...In (For...Of and For...In)
কোনো অ্যারের (বা স্ট্রিং, Map, Set ইত্যাদি) ভেতর থেকে for...of এর লুপ চালানোর পদ্ধতিটি একেবারেই আধুনিক এবং বেশ পরিচ্ছন্ন। এটি আপনাকে সরাসরি ভ্যালুগুলো (values) এনে দেয় — এখানে ইনডেক্স নিয়ে কোনো ঝামেলায় পড়তে হয় না।
for...in কোনো অবজেক্টের কীগুলোর (keys) (প্রপার্টির নাম) ভেতর দিয়ে লুপ চালায়। তবে একটু সাবধানে থাকবেন: অ্যারের ওপর for...in চালালে তা নম্বরের বদলে ইনডেক্স স্ট্রিং রিটার্ন করে, যা ছোটখাটো বাগ (bug) বা সমস্যা তৈরি করতে পারে। তাই অ্যারের ক্ষেত্রে for...of ব্যবহার করাই ভালো।