উল্টাপথের do ... while
মাঝেমধ্যে দুনিয়া উল্টাপথে চলে। এত দিন ছিল আগে শর্ত চেক করবে, তারপর কোড চলবে। do while এসে কাহিনি উল্টায় ফেলছে। কারণ, do...while লুপের স্পেশালিটি হচ্ছে, আগে কোড ব্লক চলে, আর তারপরে শর্ত চেক করে।
প্রথমে কোড এক্সিকিউট হবে, তারপর শর্ত পরীক্ষা করা হবে। এইটার বেনিফিট হচ্ছে, কোড ব্লক কমপক্ষে একবার চলবেই। এই do...while লুপ লিখতে গেলে নিচের মতো করে লিখতে হয়। যেখানে প্রথমে do ব্লক চলবে। তারপর while-এর ভিতরে গিয়ে শর্ত (condition) চেক করবে। যদি শর্ত true হয়, তাহলে কোড ব্লক আবার চালাবে। আর যদি শর্ত false হয়, তাহলে লুপ বন্ধ হয়ে যাবে।
do {
// code block
} while (condition);যখন আমাদের নিশ্চিত করতে হয় যে, কোডটি অন্তত একবার চলবেই চলবে, তখন do...while ব্যবহৃত হয়। কারণ, নরমাল while লুপ বা নরমাল if-এর মধ্যেও যে শর্ত থাকে, সেখানে শর্ত মিথ্যা হলে কোড একবারও চলবে না। যেমন, আমি একটা while লুপ লিখলাম। যেখানে শর্ত হচ্ছে, count ভেরিয়েবলের মান যদি 5-এর চাইতে বড় হয়, তাহলে লুপ চলবে। যেহেতু নিচে আমার কাউন্ট ভেরিয়েবলের মান 1 আছে, তাই নিচের লুপ আমাকে কোনো আউটপুট দিবে না।
let count = 1;
while (count > 5) {
console.log(count);
count++;
}একই ঘটনা ঘটবে for লুপের জন্য। নিচের for লুপের শর্ত একবারও পূরণ হবে না। তাই একবারও কোনো আউটপুট দিবে না।
for (let count = 1; count > 5; count++) {
console.log(count);
}এই সব ক্ষেত্রে আমি যদি চাই, মিনিমাম একবার হলেও কোড চলবে। তাহলে সেইম শর্তের জন্য আমি do... while লুপ চালিয়ে দিবো। নিচের মতো করে—
let count = 1;
do {
console.log(count);
count++;
} while (count > 5);
Output: 1আর নরমাল do...while তো নরমালভাবেই চলবে। যেখানে শর্ত, যতক্ষণ পর্যন্ত সত্য আছে, ততক্ষণ পর্যন্ত লুপ চলবে। আর যখন শর্ত মিথ্যা হয়ে যাবে, তখন আর লুপ চলবে না।
let count = 1;
do {
console.log(count);
count++;
} while (count <= 5);
Output: 1 2 3 4 5Practice:
- items নামে একটি ভেরিয়েবল থাকবে, যার মান 3। do...while ব্যবহার কর। আর লুপের শর্ত হবে যতক্ষণ items 5-এর বেশি ততক্ষণ লুপ চলবে। লুপের ভিতরে items এর মান কনসোল লগ করে দেখ কোন আউটপুট পাওয়া যায় কিনা।
- এইবার attempts নামে একটা ভেরিয়েবল থাকবে। চেক করবি, এই attempts-এর মান 10-এর নিচে কি না। যদি 10-এর কম হয়, তাহলে do...while লুপ চলবে। এর লুপের ভিতরে attempts-এর মান এক এক করে বাড়বে। আর তুই যখন শুরু করবি, তখন attempts ভেরিয়েবলের প্রাথমিক মান 12 ।
- name নামে ভেরিয়েবল থাকবে, যার মান হবে "John"। এরপর do...while লুপ চালাবি। লুপের ভিতরে প্রত্যেকবার name-এর পিছনে n যোগ করবি। আর লুপের শর্তে চেক করবি, name-এর length এর মান 10-এর কম কি না। কম হলে লুপ চলতে থাকবে।