Skip to main content

Command Palette

Search for a command to run...

Handel Condition & Logic Bengali JavaScript Series ⇾ Chapter Three

if else, Ternary operators, Switch statements

Updated
13 min read
Handel Condition & Logic Bengali JavaScript Series ⇾ Chapter Three
H

♗ Love To Play With → JavaScript & NodeJS.

✢ Interested → Web & Backend Development.

↯ Current Stack → MERN Stack

021. Logic and Condition in programming:

Logic বা যুক্তি, আমাদের দৈনন্দিন জীবনে প্রতি নিয়ত এর বিস্তার । প্রত্যেকটা মানুষ তার না না ধরণের যুক্তি ফাঁদে ফেলে নিজের কথা বা বলা বাক্য সত্যি প্রমান করতে চায় । দুটি বা একাধিক বস্তুর মধ্যে তুলনা করে করে প্রমান করে দিতে চায় সেই সত্যি ।যার তুলনা যত বেশি স্ট্রং সেই শেষ পর্যন্ত বিজয়ী । শেষ হাসি তার ।ঠিক তেমনি আমাদের কম্পিউটার এর মধ্যে যে cpu রয়েছে সেখানে লজিক নিয়ে কাজ করার ইউনিট আছে ।যাকে বলাহয় arithmetic and logic unit (ALU)। এই দুয়ের মাধ্যমে যোগ ,বিয়োগ ,গুন্ ,ভাগ কিংবা লজিক নিয়ে কাজ করে কম্পিউটার ।

কম্পিউটার কে বলা হয়ে থাকে বোকাবাক্স কারণ ,human যে ইন্সট্রাকশন দেয় মূলত তার উপর ভিত্তি করেই কম্পিউটার কাজ করে ।আর একজন প্রোগ্রামার এর দায়িত্ব কন্ডিশনের উপর ভিত্তি করে কম্পিউটার কে ইন্সট্রাকশন দেয়া ।

প্রোগ্রামিং নিয়ে আমরা যেহেতু কথা বলছি তাই এই লজিক এবং কন্ডিশন হ্যান্ডেল করার জন্য মূলত ৪ ধরণের স্টেটমেন্ট আমরা ফলো করব ।

শুধু জাভাস্ক্রিপ্ট নয়, যে কোন প্রোগ্রামিং ল্যাঙ্গুয়েজে এই স্টেটমেন্ট গুলো বিদ্যমান ।

  • if condition

  • else condition

  • else if condition

  • Switch Statement

প্রধানত এই চার অপশনের মাধ্যমে সমস্ত লজিক মেকানিজম হয়ে থাকে প্রোগ্রামিং ল্যাঙ্গুয়েজে । combinetion with this 4 things we can make ,build any type of logic .

আমরা পুর চ্যাপ্টার জুড়ে দেখব এবং বোঝার চেষ্টা করব কিভাবে কোথায় কাজ করে এই স্টেটমেন্ট গুলো ।

022. What is If Conditions in Javascript:

তোমার main ফোল্ডার এ chapterThree নামে একটা ফোল্ডার খুলে ফেল then if.jsনাম দিয়ে একটা ফাইল create কর chapterThree ফোল্ডার এ ।

if statement :

Problem :

ধর তুমি দুইটা ভ্যারিয়েবল create করছ এবং তার মান দিছ।var a = 120 এবং var b= 30 এখন a যদি b এর থেকে বড় হয় তবে কনসোল লগ করবে a is grater then b আর যদি বড় না হয় তবে কিছুই করবে না ।

আমরা যখন অপারেটর নিয়ে কাজ করেছি তখন দেখেছি দুইটার মধ্যে compare করতে আমরা > বা < ব্যবহার করি এবং আমাদের রিটার্ন করে true or false ।এখন আমাদের এমন একটা স্টেটমেন্ট লিখতে হবে যেটা এই লজিক অনুযায়ী আউটপুট দিতে সক্ষম ।

ঠিক এমন কন্ডিশনাল স্টেটমেন্ট লেখার জন্য আমরা if statement ব্যবহার করি ।

if স্টেটমেন্ট দেখতে নিচের কোডের মত :

if(condition){
//code here
}

if statement এর প্রথমেই থাকে if কীওয়ার্ড তারপর ফার্স্টব্রাকেট ,সেই ফার্স্টব্রাকেটের মধ্যে কন্ডিশন বা লজিক বসবে then কার্লিব্রাকেট শুরু ও শেষ হবে ,কার্লিব্রাকেট হল body।

body এর মধ্যে আমরা কোড লিখব, যা আমরা আউটপুট পেতে চাই কিংবা যে কোন কিছু ।আর যখন কন্ডিশন true হবে তখনি body এর মধ্যে যাবে এছাড়া কখনোই body এর কোড এক্সিকিউট করবে না ।

তাহলে আমাদের উপরে দেয়া প্রব্লেম এর সল্ভ করে ফেলি :

if.js:

var a = 120 
var b = 30

if(a>b){
console.log(`a is grater then b`)
}

আউটপুট :

download (1).png

আমাদের ইন্সট্রাকশন অনুযায়ী ঠিক আউটপুট দিয়েছে ।a অবশ্যই b এর থেকে বড় কন্ডিশন true হয়েছে তাই আমরা আউটপুট পেয়েছি ।

কিন্তু ধর এমন হত, bভ্যারিয়েবল a এর থেকে বড় কিনা ।

var a = 120 
var b = 30

if(a>b){
console.log(`a is grater then b`)
}

if(b>a){
  console.log("B is grater Then A")
}

কন্ডিশন false হত এবং কোন আউটপুট আসত না ।

Problem :

তোমাকে n নামে একটা ভেরিএবল দেয়া হল যার মান ৫ var n=5 তোমাকে বের করতে হবে ৫ জোর সংখ্যা নাকি বিজোড় সংখ্যা ?

var n = 5

if(n % 2===1 ){
  console.log(n+" is Odd Number");
}

if(n % 2 === 0){
  console.log(n+ " is Even Number")
}

ম্যাথমেটিস এর টার্ম ফলো করে ,n এর মান যাই হোকনা কেন ,মডিউলাস করলে ভাগশেষ যদি ১ থাকে তবে odd আর ০ হলে even নম্বর হবে সেটা আমরা সবাই জানি ।

এখানে দেখার বিষয় হল আমরা চাইলে মাল্টিপল কন্ডিশন চেক করতে পারি ।

যেমন ধর প্রথমে বলেছি n কে মডিউলাস করলে যা রেজাল্ট আসে তা ১ এর সমান কিনা । এই কন্ডিশন সত্য হয়েছে বলে 5 is odd Number আসছে । এর পরের লাইন এ আর একটা কন্ডিশন চেক করে বলেছি ০ এর সমান কিনা তাহলে is Even Number প্রিন্ট করবে ।

এখন তুমি তোমার কোড এ n এর মান চেঞ্জ করে আউটপুট দেখতে পার।

আউটপুট :

download (2).png

023. What is Else Condition in Javascript :

else স্টেটমেন্ট দেখতে বা সিনটেক্স এমন :

if(condition){
  //if body code is here
}else{
  // else body code is here
}

আমরা জানি যখন কন্ডিশন সত্য হয় তখন if body এর মধ্যে থাকা কোড এক্সিকিউট হয় ।কিন্তু যখন false হয় তখন আউটপুট আসে না । ঠিক এখানেই else কন্ডিশন ব্যবহার করব । if কন্ডিশন body যেখানে শেষ এর পরে else কীওয়ার্ড ব্যবহার করে else কন্ডিশন শুরু হবে ।

make a file else.js in your chapterThree folder and type your code.

var a = 120 
var b = 30

if(a>b){
    console.log(`a is grater then b`)
}else{
    console.log("B is grater Then A")
}

আমরা তখনি else ব্যবহার করব যখন স্পেসিফিক আউটপুট চাইব ।যেমন ধর a>btrue হয় তবে console.log("a is grater then b") প্রিন্ট হবে otherwise console.log("B is grater Then A")

অথবা :

var n = 5
  if(n % 2===1 ){
    console.log(n+" is Odd Number");
  }else{
    console.log(n+ " is Even Number")
  }

যদি ২ মডিউলাস করে রিমাইন্ডার ১ থাকে তবে console.log(n+" is Odd Number") প্রিন্ট হবে অন্যথায় console.log(n+ " is Even Number") প্রিন্ট হবে ।

024. What is Else If Condition in Javascript :

যখন দুই এর অধিক কন্ডিশন check করার দরকার হয় ঠিক তখন else if স্টেটমেন্ট চলে আসে ।তুমি চাইলে যত খুশি কন্ডিশন চেক করিয়ে তার উপর ভিত্তি করে আউটপুট দেখতে পার ।

else if দেখতে বা এর সিনটেক্স নিচের কোডের মত :

if(condition){

  // if body code is here

}else if(2nd condition){

  // else if body code is here

}else{

  // else body code is here

}

make a elseif.js file in your chapterThree folder and start codeing

Problem :

ধর তোমার কাছে var calenderDate="friday" নামে একটা ভেরিএবল আছে ।তুমি চাচ্ছ এক এক দিন তুমি এক এক কাজ করবে ।ভ্যারিয়েবল এর ভ্যালু চেঞ্জ হবে ডাইনামিক ভাবে । লাইক এখন calenderDate আছে friday । এখন যদি calenderDate যদি monday হয় তবে একটা কাজ ।wetnessday হলে একটা কাজ ।বাকি দিন গুলোতে রেগুলার কাজ হবে ।

elseif.js কোড :

var calenderDate = "friday";

if (calenderDate === "friday") {

  console.log(calenderDate, " Its My Holiday");

} else if (calenderDate === "saturday") {

  console.log(calenderDate, " its Time to Make Fun With Friends");

} else if (calenderDate === "sunday") {

  console.log(calenderDate, " its time to enjoy My school");

} else {

  console.log(calenderDate, "Its My regular Routing day");

}

দেখো ভ্যারিয়েবল এ friday আছে তার মানে আউটপুট আসবে :

Screenshot from 2022-08-11 20-35-37.png

আবার ধর calenderDate এর ভ্যালু saturday তাহলে else if conditon এপলাই হবে এবং saturday এর আউটপুট দিবে :

var calenderDate = "saturday";

if (calenderDate === "friday") {

  console.log(calenderDate, " Its My Holiday");

} else if (calenderDate === "saturday") {

  console.log(calenderDate, " its Time to Make Fun With Friends");

} else if (calenderDate === "sunday") {

  console.log(calenderDate, " its time to enjoy My school");

} else {

  console.log(calenderDate, "Its My regular Routing day");

}

আউটপুট দিবে :

Screenshot from 2022-08-11 20-39-37.png

তুমি else বডিতে রেগুলার routing দিয়েছ। চাইলে না দিয়েও রান করতে পার ।

025. What is Switch Statements in Javascript :

switch estatement ব্যবহার করার মাধ্যমে আমরা অনেকগুলো কোড ব্লকের মধ্যে একটি নির্বাচন করতে পারি ।

  • switch expresion একবার assess করা হয় ।

  • প্রত্যেকটি মানের সাথে এক্সপ্রেশন তুলনা করা হয় ।

  • যদি একটি মিল থাকে, কোড block এক্সিকিউট করা হয়।

  • কোন মিল না থাকলে, ডিফল্ট কোড block এক্সিকিউট করা হয়।

আমরা এখন পর্যন্ত if /else , else if সম্পর্কে জেনেছি । এগুলো কন্ডিশন এর উপরে ভিত্তি করে কাজ করে । তবে লাস্ট প্রব্লেম আমরা date নিয়ে কিছু কাজ করেছি ।আমরা আর একটু অ্যাডভান্স লেভেল এ আগের প্রব্লেমটাকে মোডিফাই করে প্রজেক্ট করব । তবে এবারে ব্যবহার করব switch statements ।এবং ফার্স্ট চ্যাপ্টার এ যে date নিয়ে শিখেছি সেটাকেও ঝালাই করে নিব ।

Problem :

জাভাস্ক্রিপ্ট আমাদের যে date ফাঙ্কশন provide করে তার মাধ্যমে সপ্তাহের আজকে কত number দিন সেটা বের করে আনতে পারি ।জাভাস্ক্রিপ্ট কম্পাইলার এই দিন সংখ্যা হিসেবে আমাদের প্রদান করে ।এই সংখ্যার উপর ভিত্তি করে আমরা findout করব আজকে সপ্তাহের কি বার ।

প্রথমেই আমরা দেখি switch স্টেটমেন্ট এর কাঠামো বা সিন্টেক্স কেমন হয় :

// in this case variable or  which things you want to check is our expression

switch(expression){//body
    //code will be here
    case 0 :
        //case 0 code here 
        break;
    case 1 :
        // case 1 code here
        break;

    case 2 :
        // case 2 code here
        break;

    default:
        //default code here
}

switch statement switch কীওয়ার্ড দিয়ে শুরু হয়ে (expression ) ফার্স্টব্রাকেট এর মধ্যে এক্সপ্রেশন নেয় then {} কার্লিব্রাকেট দিয়ে body তৈরী করে যেখানে তুমি কোড লিখবে । case এর পরে আমরা ০,১,২ এভাবে দিয়েছি,

actually প্রজেক্ট এর এক্সপ্রেশন এর উপর ভিত্তি করে case দিতে হয় then সিন্টেক্স অনুযায়ী : দিয়ে ওই কেসের জন্য কোড লেখার জায়গা তৈরী করব এবং break দিয়ে কেস শেষ করব ।এছাড়া default : মূলত else এর কাজ করে যদি একটা কেস ও না মিলে তখন ডিফল্ট রান করবে ।

সল্ভ প্রব্লেম :

var date = new Date();

var day = date.getDay();

switch (day) {
  case 0:
    console.log("Today is Sunday");
    break;

  case 1:
    console.log("Today is Monday");
    break;

  case 2:
    console.log("Today is Tuesday");
    break;
  case 3:
    console.log("Today is Wednesday");
    break;
  case 4:
    console.log("Today is Thursday");
    break;
  case 5:
    console.log("Today is Friday");
    break;
  case 6:
    console.log("Today is Saturday");
    break;

  default:
    console.log("Something Went Wrong");
}

প্রথমে date একটা ভ্যারিয়েবল এ নিয়ে তার থেকে date.getDay()মেথড বা ফাঙ্কশন ব্যবহার করে day বের করে নিয়ে আসছি ।যেহেতু প্রোগ্রামিং এ সব কিছু ০ থেকে শুরু হয় তাই আমরা ০ থেকে ৬ মানে (Sunday=0, Monday=1, Tuesday=2 ..) এভাবে কাউন্ট করব । day ভ্যারিয়েবল আমাদের একটা number রিটার্ন করছে এবং সেটাকে আমরা এক্সপ্রেশন হিসেবে চেক করছি ।এখন যদি case ০ এর সাথে day মিলে যায় তবে Today is Sunday প্রিন্ট করবে এবং কোড ব্রেক করে দিবে ।এভাবে প্রত্যেকটা কেস চেক করে যেটা মিলে যাবে তেমন আউটপুট দিবে ।আর কিছু না মিললে ডিফল্ট মানে "Something Went Wrong" প্রিন্ট করবে ।

আমার সময় অনুযায়ী আউটপুট :

Screenshot from 2022-08-11 22-06-53.png

এর বাইরে যখন আমরা প্রজেক্ট করব তখন ডিটেলস জানতে পারব ।

026. Logical Operators in Javascript :

Logical অপারেটর গুলি ভেরিয়েবল বা মান গুলির মধ্যে লজিক determine করতে ব্যবহৃত হয়।

লজিকাল অপারেটর গুলি হচ্ছে :

logic.png

&& বা and অপারেটর :

দুইটা কন্ডিশন কে মার্জ করার জন্য && অপারেটর ব্যবহার করতে হবে ।ধর তোমার কাছে দুইটা কন্ডিশন আছে A এবং B । && অপারেটর এর শর্ত হচ্ছে দুইটা কন্ডিশনকেই true হতে হবে ।একটা true অন্যটা false হলে false রিটার্ন করবে।

  • condition:A(true) && condition:B(true) = true

  • condition:A(true) && condition:B(false) = false

  • condition:A(false) && condition:B(true) = false

  • condition:A(false) && condition:B(false) = false

তাহলে আমরা এখন if / else statement চেক করার মাধ্যমে && এর ব্যবহার দেখতে পারি ।

create a file logical.js in your chapterThree folder

var thirty = 30;
var twelve = 12;

var seven = 7;
var five = 5;

if (twelve > five && five < twelve) {
  console.log("Twelve is Grater then five");
} else {
  console.log("five is Smaller then Twelve");
}

if (seven > five && twelve > thirty) {
  console.log("condition false");
} else {
  console.log("One condition False thirty is bigger then twelve");
}

আউটপুট logical.js:

Screenshot from 2022-08-11 23-20-56.png

code দেখো আমি ৪ টা ভ্যারিয়েবল নিয়েছি ।thirty,twelve,seven,five এখন if /else দিয়ে চেক করেছি twelve > five এর থেকে বড় কিনা && five < twelve থেকে ছোট কিনা । যেহেতু দুইটাই সত্যি হইসে তাই Twelve is Grater then five রিটার্ন করছে ।

কিন্তু seven > five থেকে বড় কিনা && twelve > thirty থেকে বড় কিনা এটা যখন চেক করেছি তখনি twelve > thirty মানে মিথ্যা হয়ে গেছে তাই আউটপুট দিচ্ছে One condition False thirty is bigger then twelve if ব্লক এ যায়নি else এক্সিকিউট করে দিয়েছে ।

|| বা or অপারেটর :

দুইটা কন্ডিশন কে আলাদা আলাদা করার জন্য || অপারেটর ব্যবহার হয় ।ধর তোমার কাছে দুইটা কন্ডিশন আছে A এবং B । || বা or অপারেটর এর শর্ত হচ্ছে যেকোন একটা কন্ডিশনকে সত্যি হতে হবে, তাহলেই true রিটার্ন করবে ।আর দুটোই false হলে false রিটার্ন করবে।

  • condition:A(true) || condition:B(true) = true

  • condition:A(true) || condition:B(false) = true

  • condition:A(false) || condition:B(true) = true

  • condition:A(false) || condition:B(false) = false

তাহলে আমরা এখন if / else statement চেক করার মাধ্যমে || এর ব্যবহার দেখতে পারি ।

create a file logical.js in your chapterThree folder

var thirty = 30;
var twelve = 12;

var seven = 7;
var five = 5;

if (twelve > five || five < twelve) {
  console.log("Twelve is Grater then five");
} else {
  console.log("five is Smaller then Twelve");
}

if (seven > five || twelve > thirty) {
  console.log("condition true ");
} else {
  console.log("One condition False thirty is bigger then twelve");
}

আউটপুট logical.js:

Screenshot from 2022-08-12 00-23-47.png

code দেখো আমি ৪ টা ভ্যারিয়েবল নিয়েছি ।thirty,twelve,seven,five এখন if /else দিয়ে চেক করেছি twelve > five এর থেকে বড় কিনা || five < twelve থেকে ছোট কিনা । যেহেতু দুইটাই সত্যি হইসে তাই Twelve is Grater then five রিটার্ন করছে ।

seven > five থেকে বড় কিনা && twelve > thirty থেকে বড় কিনা এটা যখন চেক করেছি তখনি twelve > thirty মিথ্যা হয়ে গেছে এবং আউটপুট দিচ্ছে condition true if ব্লক এক্সিকিউট করে দিয়েছে ।কারণ যে কোন একটা সত্য হলেই হল ।

! বা not অপারেটর :

কোন false বা true কন্ডিশন এ যদি ! not অপারেটর বসানো হয় তবে তা অপোজিট রিটার্ন করবে ।

  • !(condition:A(true) || condition:B(true)) = false

  • !(condition:A(true) || condition:B(false)) = flase

  • !(condition:A(false) && condition:B(true)) = true

  • !(condition:A(false) && condition:B(false)) = true

অবশ্যই দুইটা কন্ডিশন কে () ফার্স্ট ব্রাকেট দিয়ে wrap করে শুরুতে ! দিতে হবে ।

var a = false;

var b = true;

console.log(!(a && b));

console.log(!(a || b));

আউটপুট logical.js:

Screenshot from 2022-08-12 00-39-28.png

তবে আমরা যদি দুইটা !! অপারেটর ব্যবহার করি তবে false হয়ে যাবে true এবং true হয়ে যাবে false ।

027. Ternary Operator in Javascript :

আমরা যখন if /else নিয়ে কাজ করেছি তখন দেখেছি true অথবা false এর উপর ভিত্তি করে আমাদের আউটপুট দিয়েছে ।

ঠিক টার্নারি অপারেটর ও true অথবা false এর উপর ভিত্তি করে আমাদের রেজাল্ট রিটার্ন করে । এবং টার্নারি অপারেটর সিঙ্গেল লাইন হয়ে থাকে ।

টার্নারি অপারেটর এর কাঠাম বা সিন্টেক্স দেখতে :

condition ? "true output" : "false output"

make a file call ternary.js in your chapterThree folder .

Problem :

ধর তোমার কাছে var checkNumber = 20 নামে একটা ভ্যারিয়েবল আছে তোমাকে বের করতে হবে সংখ্যা টি ODD নাকি EVEN নাম্বার ।

প্রব্লেম টা প্রথমে if / else দিয়ে সল্ভ করি :

var checkNumber = 20;

if (checkNumber % 2 === 0) {
  console.log("This Is Even Number");
} else {
  console.log("This IS ODD Number");
}

আউটপুট tarnary.js :

Screenshot from 2022-08-12 01-03-26.png

প্রব্লেম ternary oparetor দিয়ে সল্ভ করি :

var checkNumber = 20;

checkNumber % 2 === 0 ? console.log("Even Number") : console.log("ODD Number");

আউটপুট tarnary.js :

Screenshot from 2022-08-12 01-08-52.png

জাস্ট একটা লাইন এ আউটপুট দিয়ে দিয়েছে । true হয়েছে বলে Even Number আউটপুট দিয়েছে ।

028. How to Use And Or Shorthand in Javascript :

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

  1. The Ternary Operator

এটা খুব ভাল কোড বাঁচায় যখন তুমি if..else statement শুধুমাত্র এক লাইন এ লিখতে চাও।

Longhand:

var x = 20;
ver answer;

if (x > 10) {
    answer = "greater than 10";
} else {
    answer =  "less than 10";
}

Shorthand:

var answer =x > 10? "greater than 10" :  "less than 10";
  1. Short-circuit Evaluation Shorthand

    যখন একটা ভ্যারিয়েবল এর ভ্যালু অন্য ভ্যারিয়েবল এ এসাইন করতে চাও , তুমি অবশ্যই ensure করতে চাও যেন সোর্স ভ্যারিয়েবল null, undefined, or empty না হয় । তুমি চাইলে অনেক বড় if কডিশন লিখতে পার , অথবা short-circuit evaluation ব্যবহার করতে পার ।

Longhand:

if (variable1 !== null || variable1 !== undefined || variable1 !== '') {
     var variable2 = variable1;
}

Shorthand:

var variable2 = variable1  || 'new';

এই চ্যাপ্টার এখানেই শেষ করছি দেখা হবে আগামী চ্যাপ্টার এ ।

আগামী চ্যাপ্টার এ থাকছে Reduce Repeating Tasks with Loops

D

Excellent! Keep it coming!

JavaScript deep dive

Part 3 of 17

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

Up next

Reduce Repetitive Tasks With Loop Bengali JavaScript Series ⇾ Chapter Four

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

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🚀