Skip to main content

Command Palette

Search for a command to run...

Reduce Repetitive Tasks With Loop Bengali JavaScript Series ⇾ Chapter Four

Loops, For Loops, While Loops, Do while Loops, Break statements, Nested Loops

Updated
11 min read
Reduce Repetitive Tasks With Loop Bengali  JavaScript Series ⇾ Chapter Four
H

♗ Love To Play With → JavaScript & NodeJS.

✢ Interested → Web & Backend Development.

↯ Current Stack → MERN Stack

chapter Four এ তোমাদের সবাইকে স্বাগত জানাচ্ছি ।এই চ্যাপ্টার পুরোটাই ডেডিকেট করা হয়েছে loops এর উপরে ।জাভাস্ক্রিপ্ট এ লুপ খুব গুরুত্তপুর্ন ভূমিকা পালন করে । actually not only javascript যে কোন ল্যাংগুজে loops খুব গুরুত্ব বহন করে ।প্রোগ্রামারদের প্রায়শই এমন কাজ করতে হয় যা বারবার repitetly চলে আসে ।তোমার এমন same কাজ করা থেকে মুক্তি দিবে এই লুপ । আলাদা আলাদা ভ্যালু স্টোর করে আউটপুট দিবে লুপ ।

Loops are statements whice execute some Block of Code Repetedly until The condition Becomes False.

029. Introduction to Loops in Programming :

উপরে আমি উল্লেখ করেছি রিপিটিং টাস্ক ।এই রিপিটিং টাস্ক বলতে কি বুঝায় ?

উদহারণ দিয়ে দেখার চেষ্টা করব । ধর তোমায় একটা কাজ দেয়া হল । console.log("type your name") তোমার নাম ১০০ বার কনসোল এ প্রিন্ট করতে হবে ।

তুমি মহা খুশি প্রশ্ন কমন পড়েছে লিখতে বসে যাবে । লিখেও ফেললে । আমি সাবাসি দিলাম ।কিন্তু ২ দিন পরে এসে বললাম আমার তো আরও ৫৭৮ বার দরকার তোমার নাম ।

তুমি আবার লিখতে বসলা ।লিখেও ফেলছ কিছু কপি পেস্ট করছ আর কিছু লিখে ফেলেছ ।আবার দিলাম সাবাসি ।

কিন্তু এর ২ দিন পরে বললাম ভাইয়া তোমার নাম তা ভালো লাগছে না, এখানে আমার নাম দাও এবং আরও ৪৯০ বার টাইপ কর ।

তোমার তো মাথায় হাত, বিরক্তের কথা তো বলাই লাগে না ।

এদিকে তোমার এক বন্ধু আছে সে জাভাস্ক্রিপ্ট ভাল জানে,তাকেও same কাজ দিলাম , সে কি করল ,কাজটাকে এমন একটা সিস্টেম এ ফেলে দিল যার কাজই হচ্ছে একটা same টপিকে ভ্যারিয়েবল এর কন্ডিশন এর উপর ভিত্তি করে রিপিট করা আর শেষ হলে লুপ বন্ধ করে দেয়া । এই যে সিস্টেমটা সে apply করল এটাই হল লুপ ।

জাভাস্ক্রিপ্ট এ এই লুপ আবার প্রধানত ৩ প্রকার ।

  1. For Loop

  2. While Loop

  3. Do While Loop

এই ৩ প্রকারের লুপ এ দেখা যায় । তবে For Loop এর মধ্যে আরো ২ টা ভাগ আছে । কিন্তু আমরা এখন ঐদিকে যাব না। পরবর্তীতে সেসব নিয়ে আলোচনা হবে ।

বলাহয় তুমি যদি কন্ডিশন আর লুপ বুজতে পার ,এর পরে প্রোগ্রামিং এত জটিল লাগবে না ।তাই মন দিয়ে চ্যাপ্টার টা খেয়াল কর ।

030. What is For Loop in Javascript :

আমরা প্রথমেই দেখে নেই forLoop দেখতে কেমন বা এর কাঠাম কেমন হয় :

for(/*initializer; condition; increment/decrement*/ ){ // body / code block

// code block to execute

}

প্রথমেই আমরা যে স্টেটমেন্ট ব্যবহার করব তার নাম বা কীওয়ার্ড ব্যবহার করতে হবে ।যেমন ফরলুপ এর ক্ষেত্রে forব্যবহার করেছি । then ফার্স্ট ব্রাকেট () ব্যবহার হবে যার মধ্যে আমরা এক্সপ্রেশন লিখব ।এর পরে কার্লি ব্রাকেট বা ২nd ব্রাকেট ব্যবহার করে body তৈরী করেছি ।যেখানে exicutable কোড লিখব । এগুলি গেলো স্কেলটন বা কাঠামো ।

আমরা কি কি এক্সপ্রেশন ফারস্টব্র্যাকেটের (initializer ; condition ;increment ) মধ্যে দিব :

initializer:

এখন আমরা ফার্স্টব্রাকেট এর মধ্যে প্রথমেই দিব initializer। মানে হচ্ছে আমরা কোথেকে কাউন্টিং শুরু করব সেটা বলে দেয়া ।এবং আমরা সেই মান একটা ভ্যারিয়েবল এর মধ্যে রাখব ।যে কোন নাম হতে পারে ভ্যারিয়েবল এর ।এর পরে আমরা সেমিক্লোন ; ব্যবহার করেছি । জাভাস্ক্রিপ্ট এ একটা সিঙ্গুলার লাইন এর মধ্যে আলাদা আলাদা এক্সপ্রেশন ব্যবহার করতে এবং তা আলাদা করতে ; সেমিক্লোন ব্যবহার করতে হয় ।

Condition:

দ্বিতীয় যে এক্সপ্রেশন আমরা ব্যবহার করব সেটা থাকবে কন্ডিশন । কোন কন্ডিশন এর উপর ভিত্তি করে loop চলে । সেটাই এই কন্ডিশন বলে দিবে ।এবং () ফার্স্টব্রাকেট এ কন্ডিশন থাকে ২nd এক্সপ্রেশন হিসেবে ।

Increment / decrement :

এর পরে তিন নম্বর যে এক্সপ্রেশন টা আসে সেটা হল increment আমরা ভ্যারিয়েবল এর মান কতবার করে বাড়াতে চাই সেটাই বলে দিতে হয় ।যদি ভ্যারিয়েবল এর মান আমরা না বাড়াই বা কমাই তবে আউটপুট দিবে না ।যা আছে তাই থাকবে এবং ইনফিনিটি লুপ হয়ে যাবে ।তাই আমরা যে ভ্যারিয়েবল initialize করব সেটার বর্তমান ভ্যালুর সাথে সংখ্যা যোগ বা বিয়োগ করে দিব ।

Body / code block :

বডি তে আমরা মূলত আউটপুট লিখব ,এখানে যাই লিখব সেটাই কন্ডিশন এর উপর ভিত্তি করে বার বার প্রিন্ট করবে বা এক্সিকিউট হবে ।মানে হচ্ছে যতক্ষণ কন্ডিশন true রিটার্ন করবে ততক্ষন কোড চলতেই থাকবে ।

problem:

তোমাকে ১ থেকে শুরু করে ১০০ পর্যন্ত number কনসোল এ দেখতে হবে ফর লুপ ব্যবহার করে ।

chapterFour এর মধ্যে forloop.js নামে ফাইল create করে কোড লেখা শুরু কর ।

সল্ভ প্রব্লেম forloop.js code

for (var i = 1; i <= 100; i++) {
  console.log(i);
}

এখানে আমরা for দিয়ে স্টেটমেন্ট শুরু করলাম । তারপর একটা ভ্যারিয়েবল নিয়েছি i। আমরা জানি প্রোগ্রামিং এ সব কিছু থেকে কাউন্ট করা হয় কিন্তু আমাদের প্রব্লেম এ বলা হয়েছে ১ থেকে তাই ভ্যারিয়েবল এর মান ১ নিয়েছি ।এরপর কন্ডিশন লিখেছি আমাদের ১০০ পর্যন্ত লিখতে বলা হয়েছে তাই আমরা বলেছি i<= 100 i যতক্ষণ ১০০ বা ১০০ এর সমান না হবে ততক্ষন i ++ মানে i এর মান এক করে বৃদ্ধি কর ।তারপর body তে প্রিন্ট করেছি ভ্যারিয়েবল i এর মান । আমরা শুধু যে কনসোল লগ করতে পারি এমন না আমরা যে কোন লজিক ,যে কোন কোড করতে পারি ।

ধর আমরা চাইলাম ১ থেকে ১০০ এর মধ্যে যত গুলো evan নম্বর আছে সেগুলো প্রিন্ট করব ।

তাহলে কোড হবে :

for(var i = 1; i<= 100;i++){
if(i%2 ===0){

console.log('Evan Number',i)

}
}

দেখো আমরা লুপ এর মধ্যে কন্ডিশন দিয়ে বলে দিলাম evan নম্বর বের করার লজিক ।

Problem:

এবার আমরা ১০০ থেকে ১২০ পর্যন্তও বের করব ।

তাহলে কোড গুলো হবে:

for (var i = 100; i <= 120; i++) {
  console.log(i);
}

এখন কোড রান করলে দেখবে ১০০ থেকে ১২০ পর্যন্ত প্রিন্ট করবে ।কারণ আমরা ভ্যারিয়েবল এর মান শুরুর দিকে ১০০ দিয়ে দিয়েছি ।

আসা করি বুজতে পেরেছ।

031. What is While Loop in Javascript :

এর আগে আমরা জেনেছি for loop সম্পর্কে ,এবারে আমাদের আলোচনার বিষয়বস্তু while loop ।

আমরা জানি for loop এ একটি initialization স্টেজ একটি কন্ডিশন ,এবং আপডেট বা incriment এক্সপ্রেশন থাকে ।কিন্তু while loop এমনটা হয় না শুধু মাত্র কন্ডিশন এর উপর ভিত্তি করে লুপ চলতে থাকে ।যখন কন্ডিশন মিথ্যা হবে ঠিক তখনি লুপ বন্ধ হয়ে যাবে ।এখন আমরা দেখি while loop এর কাঠাম কেমন হয় :

while(/*condition*/){//body
    //block of code here
}

ঠিক এত টুকুই while loop । তবে আমাদের কন্ডিশন চালানোর জন্য initializer দরকার সেটা আসবে বাইরে থেকে ।হতে পারে কোন ভ্যারিয়েবল ,হতেপারে ক্লায়েন্ট এর ডাটা বা অন্য যে কোন কিছু । এবং যতক্ষণ পর্যন্তও কন্ডিশন মিথ্যা না হবে ততক্ষন চলতেই থাকবে এবং infinity লুপ এ পরিণত হবে।

এবারে আমরা একটা উধারণের মাধ্যমে দেখার চেষ্টা করি ।

problem:

তোমাকে ১ থেকে শুরু করে ১০ পর্যন্ত number কনসোল এ দেখতে হবে while লুপ ব্যবহার করে ।

তাহলে while.js ফাইল create করে কোড লিখে ফেল ।

var initialNumber = 1;
while (initialNumber <= 10) {
  console.log(initialNumber);
}

প্রথমে আমরা while এর সিন্টেক্স লিখে ফেললাম কন্ডিশন ছাড়া ।এখন আমাদের বলা হয়েছে ১ থেকে ১০ প্রিন্ট করতে এবং তার জন্য কন্ডিশন লাগবে ।আমরা জানি কোন কিছুর উপর ভিত্তি করে তবেই কন্ডিশন লেখা হয় তো আমরা ধরলাম একটা ভেরিয়েবল এর উপর ভিত্তি করেই কন্ডিশন লিখতে হবে তাই while লুপ এর বাইরে initialNumber নামে ভ্যারিয়েবল ডিক্লার করি যার মান থাকবে ১। এখন আমরা কন্ডিশন লিখব যদি initialNumber এর মান ১০ বা তার কম হয় তখন বডি তে console.log(initialNumber) হবে initialNumber ।

তুমি যদি এবার terminal এ কোড রান কর :

আউটপুট আসবে :

Screenshot from 2022-08-14 21-41-44.png

আমাদের লুপ রান হয়েছে ,এবং কনসোল লগ এ initialNumber ভ্যালু ১ দিচ্ছে ।

আমরা বলেছিলাম কন্ডিশন এ initialNumber ভ্যালু ১০ এর সমান হলে কন্ডিশন মিথ্যা হবে এবং লুপ বন্ধ হয়ে যাবে ।সেটা যেহেতু হচ্ছে না তাই ইনফিনিটি লুপ এ পরিণত হয়েছে।

তাহলে আমাদের দরকার প্রতিবার লুপ রান হবে যতক্ষণ ১০ না হবে ততক্ষন initialNumber এর বর্তমান ভ্যালুর সাথে ১ যোগ করবে ।

var initialNumber = 1;
while (initialNumber <= 10) {
  console.log(initialNumber);

  initialNumber++ ;
}

আউটপুট :

Screenshot from 2022-08-14 21-51-43.png

একটি while লুপ এর কার্য প্রণালী :

while_syntax.png

আমাদের যখন স্টার্টিং পয়েন্ট এবং এন্ডিং পয়েন্ট জানা থাকবে তখন for loop ব্যবহার করব ।কিন্তু সার্ভার থেকে রেসপন্স আসা কিংবা আমরা জানি না ডাটা কিভাবে আসবে সে ক্ষেত্রে আমরা while লুপ ব্যবহার করব ।

problem :

তোমাকে একটা boolean ভ্যালু দেয়া হবে যা ইনিশিয়াল অবস্থায় true থাকবে ।তোমাকে একটা random number জেনারেট করতে হবে এবং সেই random number যখনি ৯ এর সমান হবে লুপ স্টপ হয়ে যাবে কনসোল লগ শো করবে Tom And Jerry winn the game

while.js code:

var isTrue = true;
while (isTrue) {
  var random = Math.floor(Math.random() * 10 + 1);

  if (random === 9) {
    console.log("Tom & Jerry win The game");
    isTrue = false;
  } else {
    console.log(random);
  }
}

at first আমরা একটা স্টার্টিং পয়েন্ট create করলাম isTrue নামে যার উপর ভিত্তি করে loop চলবে । তারপর while লুপ লিখলাম এবং কন্ডিশন দিলাম isTrue ভ্যালু সত্যি হলে লুপ চলবে ,যেহেতু ভ্যালু true আছে তাই লুপ স্টার্ট করেছে ।এবার body এর মধ্যে random নাম দিয়ে একটা ভ্যারিয়েবল নিয়েছি যেটা আমাদের একটা random number জেনারেট করে দিচ্ছে ।if স্টেটমেন্ট এ কন্ডিশন চেক করছি random নাম্বার যদি ৯ এর সমান হয় তবে "Tom & Jerry win The game" প্রিন্ট করবে এবং সেই সাথে isTrue ভ্যারিয়েবল এর ভ্যালু reassign করে false করে দিবে ।যেহেতু কন্ডিশ false তাই লুপ চলা বন্ধ হবে ।

আর else স্টেটমেন্ট এ তখনি যাবে যখন isTrue সত্য থাকবে ।

032. What is Do While Loop in Javascript :

আমরা দেখেছি যখন while লুপ এর কন্ডিশন false হয় তখন লুপ এর ভিতরের কোড এক্সিকিউট হয় না ,কিন্তু do while এর ক্ষেত্রে আলাদা atleast একবার হলেওকোড ব্লক এক্সিকিউট হবে সেটা হোক false ওর true ।

do while লুপ এর কাঠাম :

do{
// code here
}while(/*condition*/)

ধর isTrue নামে ভ্যারিয়েবল আছে যার ভ্যালু false কিন্তু তার পরেও যদি তুমি লুপ চালাও তখন কোড ব্লক এ থাকা কোড গুলো রান করবে একবার then while কন্ডিশন এ যাবে এবং false পাবে লুপ stop করে দিবে ।

var isTrue = false;
do {
  console.log("Hello World");
} while (isTrue);

আউটপুট dowhile.js

Screenshot from 2022-08-14 23-55-32.png

আমাদের প্রজেক্ট এ এমন অনেক requirement থাকবে যে আগে কোড রান করে ক্লায়েন্টস থেকে ইনপুট নিতে হবে then সেই ইনপুট এর উপর ভিত্তিকরে লুপ চালাতে হবে সেই ক্ষেত্রে বেসিক্যালি do while লুপ ব্যবহার হয় ।

033. What is Nested Loop in Javascript :

প্রোগ্রামিং এ একটা স্টেটমেন্ট এর মধ্যে একাধিক স্টেটমেন্ট ব্যবহার করতে পারি । if statement এর মধ্যে চাইলে একাধিক if statement চালাতে পারি ।ঠিক তেমনি একটা loop এর মধ্যে একাধিক লুপ আমরা ব্যবহার করে পারি ।এই যে লেয়ার by লেয়ার লুপ ব্যবহার করা এটাই মূলত nested loop । অনেক গুলো লুপ একটা লুপ এর মধ্যে থাকতে পারে ।

Problem :

//1
//1 2
// 1 2 3
// 1 2 3 4
// 1 2 3 4 5

আমরা উপরে দেখান এমন একটা ট্রাইএঙ্গেল বানাব নেস্টেড লুপ ব্যবহার কর

chapterFour এর মধ্যে nested.js নামে ফাইল create করে কোড করা শুরু করব ।

var n = 5;

for (var i = 1; i <= n; i++) {
  var result = "";
  for (var j = 1; j <= i; j++) {
    result += j + " ";
  }
  console.log(result);
}

উপরের কোড প্রথমেই একটা forloop নিয়েছি যার initialization ভ্যারিয়েবল হিসেবে var i =1 then আমাদের একটা কন্ডিশন চালাতে হবে । যে লুপ কতক্ষন চলবে, তাই লুপ এর বাইরে একটা ভ্যারিয়েবল n নিয়েছি যার মান 5 ,i যতক্ষণ n এর সমান না হবে ততক্ষন i কে ++ করব ।

এর পরে আর একটি forloop দরকার কারণ আমাদের loop একটা করে কলাম বাড়াবে । j নামে ভ্যারিয়েবল এ মান বসছে ১ ,j ততক্ষন চলবে যতক্ষণ না j এর মান i এর ছোট বা সমান হবে এবং j++ করে মান বাড়াবে ।যেহেতু জাভাস্ক্রিপ্ট প্রতিটা লাইন আলাদা আলাদা প্রিন্ট করে তাই আমরা result নামে একটা empty স্ট্রিং নিয়েছি। আমাদের দরকার পাশাপাশি সংখ্যা বসান , তাই result এর ভ্যালুকে reassign করে j এর যে মান তার সাথে j + " "স্পেস যোগ করে দিয়েছি ।এবং সব শেষে ফাইনাল আউটপুট এ result কে প্রিন্ট করেছি ।

আউটপুট :

Screenshot from 2022-08-15 00-57-54.png

034. What is Break Statement in Javascript :

ব্রেক স্টেটমেন্ট আমরা এর আগে switch স্টেটমেন্ট এ দেখেছিলাম ।ঠিক same কাজ করে লুপ এর ক্ষেত্রেও ।এক কথায় বলতেগেলে brake স্টেটমেন্ট ব্যবহার করে তুমি কন্ডিশন এর উপর ভিত্তি করে, যে কোন সময় লুপকে টার্মিনেট করতে পার ।

আমরা চাইলে যে কোন লুপ এর সাথে ব্রেক স্টেটমেন্ট ব্যবহার করতে পারি তবে আমরা এখন while লুপ ব্যবহার করে দেখব ।

brake.js নামে ফাইল খুলে সেখানে কোড করা শুরু করি ।

while (true) {
  var random = Math.floor(Math.random() * (10 + 1));

  if (random === 9) {
    console.log("Jitchi Murgi Jitchi");
    break;
  } else {
    console.log(random);
  }
}

আমরা জানি while লুপ কন্ডিশন true হলে লুপ চালায়।ঠিক সেটাই করেছি প্রথমেই true কন্ডিশন দিয়ে দিয়েছি ।এর পর একটা random ভ্যারিয়েবল এ random নম্বর জেনারেট করেছি ।আমাদের কাজ হল random number যখনি ৯ এর সমান হবে তখন "Jitchi Murgi Jitchi" প্রিন্ট করা এবং লুপ ব্রেক করে দেয়া ।আর else স্টেটমেন্ট তো random নম্বরটা বসাচ্ছে যতক্ষণ false না হচ্ছে ।

thsts it আমরা চাইলে কন্ডিশন এর উপর রিলেই করে যে কোন সময় টার্মিনেট করতে পারি ।

035. What is Continue Statement in Javascript:

আমাদের অনেক সময় কোন কিছুকে কন্ডিশন এর উপর ভিত্তিকরে skip করার দরকার হতে পারে সেখানেই মূলত continue স্টেটমেন্ট ব্যবহার হয় ।

ধর আমরা ১ থেকে ১০ পর্যন্ত প্রিন্ট করব কিন্তু যখন ৩ এবং ৬ আসবে তখন তাদের কে বাদ দিয়ে প্রিন্ট করব ।এমন কেসের জন্যই continue স্টেটমেন্ট ব্যবহার করা হয় ।

continue.js

for (var i = 1; i <= 10; i++) {
  if (i === 3 || i === 7) {
    console.log("Missing " + i);
    continue;
  } else {
    console.log(i);
  }
}

সাধারণ for লুপ চালিয়েছি কিন্তু যখনি i এর ভ্যালু ৩ অথবা ৭ হয়েছে তখন skip করে গিয়েছি continue স্টেটমেন্ট ব্যবহার করে ।আমি জাস্ট console.log("Missing " + i); বোঝার জন্য কনসোল লগ করেছি তুমি চাইলে ব্যাড দিতে পার । এতে করে ৩ এবং ৭ প্রিন্টই হবে না ।

036. What is Infinity For Loop in Javascript :

আমরা একটা for লুপ কে ইনফিনিটি লুপ এ পরিণত করতে পারি তার এক্সপ্রেশন গুলো না বলে জাস্ট ;; দুইটা সেমিক্লোন ব্যবহার করে

for (;;) {
  var random = Math.floor(Math.random() * 10 + 1);
  if (random === 9) {
    console.log("Winner Winner Chicken Dinner");
    break;
  } else {
    console.log(random);
  }
}

Screenshot from 2022-08-15 01-37-56.png

এর মদ্ধো দিয়েই শেষ হলো আমাদের চ্যাপ্টার ফোর এর লুপ ।

পরবর্তী চ্যাপ্টার এ স্ট্রিং নিয়ে ডিটেলস এ জানব ।

JavaScript deep dive

Part 4 of 17

সম্পূর্ণ বাংলা ভাষায় javascript কমপ্লিট সিরিজ। একদম বিগিনার থেকে অ্যাডভান্সড লেভেল সবার জন্য।সিরিজটি এমন ভাবে সাজানো হয়েছে যেন প্রোগ্রামিং এর বিগিনার থেকে এক্সপার্ট সবাই এ উপকৃত হতে পারে।

Up next

String and its uses in Bengali JavaScript Series ⇾ Chapter Five

string literal and construction, escape Notation, string method, length of string

More from this blog

D

Discover latest tech &amp; programming blogs with devtj. Educate yourself in web development &amp; more

34 posts

Backend-Focused Full-Stack Developer.

🛠️ Current Tech Stack: MERN Stack Enthusiast🚀