JavaScript এর হাতেখড়ি (পর্ব – ৪)

JavaScript Part 4

আগের পর্বে আমরা Operator শিখেছি — যেগুলো দিয়ে true/false ফলাফল পাওয়া যায়। আজকে শিখবো সেই true/false দিয়ে কীভাবে সিদ্ধান্ত নেওয়া যায় — মানে শর্ত অনুযায়ী ভিন্ন ভিন্ন কোড চালানো। এটাই প্রোগ্রামিং-এর আসল "বুদ্ধিমত্তা" শুরু হওয়ার জায়গা।

if — মূল শর্ত

if এর ভেতরের শর্ত true হলেই শুধু কার্লি ব্র্যাকেটের ভেতরের কোড চলবে:

let age = 20;

if (age >= 18) {
  console.log("তুমি ভোট দেওয়ার যোগ্য");
}

এখানে age >= 18 শর্তটা true, তাই ভেতরের console.log চলবে। যদি বয়স ১৮-এর কম হতো, তাহলে এই লাইনটা একদম skip হয়ে যেত।

if...else — দুইটা রাস্তা

শর্ত মিথ্যা হলে বিকল্প কিছু করতে চাইলে else ব্যবহার হয়:

let age = 15;

if (age >= 18) {
  console.log("তুমি ভোট দেওয়ার যোগ্য");
} else {
  console.log("তুমি এখনো যোগ্য না");
}

এখানে দুইটার একটা অবশ্যই চলবে — হয় if-এর ভেতরের কোড, নাহয় else-এর ভেতরের কোড।

else if — একাধিক শর্ত

দুইয়ের বেশি সম্ভাবনা থাকলে else if দিয়ে একের পর এক শর্ত চেক করা যায়:

let marks = 75;

if (marks >= 80) {
  console.log("গ্রেড: A+");
} else if (marks >= 60) {
  console.log("গ্রেড: A");
} else if (marks >= 40) {
  console.log("গ্রেড: C");
} else {
  console.log("গ্রেড: F");
}

এখানে JavaScript উপর থেকে নিচে একটা একটা করে শর্ত চেক করে। যেই শর্তটা প্রথম true হয়, শুধু তার ভেতরের কোড চলে, বাকিগুলো ইগনোর হয়ে যায় — এখানে marks 75, তাই "গ্রেড: A" প্রিন্ট হবে।

টিপস: else if-এর ক্রম গুরুত্বপূর্ণ। যদি প্রথমে marks >= 40 চেক করতে, তাহলে ৭৫ মার্কসেও ভুলভাবে "C" দেখাতো, কারণ ৭৫ তো ৪০-এর বেশিও। তাই সবসময় বড় থেকে ছোট (বা নির্দিষ্ট থেকে সাধারণ) ক্রমে শর্ত সাজানো উচিত।

Nested Condition — শর্তের ভেতরে শর্ত

একটা if-এর ভেতরে আরেকটা if রাখা যায়:

let age = 20;
let hasTicket = true;

if (age >= 18) {
  if (hasTicket) {
    console.log("ভেতরে যেতে পারবে");
  } else {
    console.log("টিকিট লাগবে");
  }
} else {
  console.log("বয়স যথেষ্ট না");
}

টিপস: Nested condition বেশি গভীর হয়ে গেলে কোড পড়া কঠিন হয়ে যায়। এই একই লজিক && দিয়েও লেখা যেত — if (age >= 18 && hasTicket)। যেখানেই সম্ভব, nested condition-এর বদলে &&/|| ব্যবহার করে কোড সহজ রাখা ভালো।

Ternary Operator — এক লাইনের if/else

সহজ if/else-কে খুব ছোট করে এক লাইনে লেখার একটা শর্টহ্যান্ড আছে:

let age = 20;

// সাধারণ if/else
let message;
if (age >= 18) {
  message = "প্রাপ্তবয়স্ক";
} else {
  message = "নাবালক";
}

// ternary দিয়ে একই কাজ, এক লাইনে
let message2 = age >= 18 ? "প্রাপ্তবয়স্ক" : "নাবালক";

console.log(message2);

গঠনটা এরকম: শর্ত ? true হলে যা হবে : false হলে যা হবে। শুধু সহজ, ছোট if/else-এর জন্য এটা ব্যবহার করা ভালো — জটিল লজিকে সাধারণ if/else-ই বেশি readable।

switch — অনেকগুলো নির্দিষ্ট মান চেক করা

যখন একটা variable-এর বিভিন্ন নির্দিষ্ট মান অনুযায়ী ভিন্ন কাজ করতে হয় (অনেকগুলো else if লেখার বদলে), তখন switch বেশি পরিষ্কার হয়:

let day = "শনিবার";

switch (day) {
  case "শুক্রবার":
    console.log("সাপ্তাহিক ছুটি");
    break;
  case "শনিবার":
    console.log("অফিস শুরু");
    break;
  default:
    console.log("সাধারণ কর্মদিবস");
}
অংশ কাজ
case একটা নির্দিষ্ট মান, যেটার সাথে মিললে সেই ব্লক চলবে
break এই case শেষ, নিচেরগুলো আর চেক করবে না
default কোনো case-ই না মিললে এটা চলবে (else-এর মতো)

টিপস: প্রতিটা case-এর শেষে break লিখতে ভুলে গেলে JavaScript পরের case-টাও চালিয়ে দেবে, যেটা প্রায়ই অপ্রত্যাশিত bug তৈরি করে — একে বলে "fall-through"। এটা switch ব্যবহারের সবচেয়ে কমন ভুল।

একটা সম্পূর্ণ উদাহরণ

<!DOCTYPE html>
<html lang="bn">
<head>
  <meta charset="UTF-8">
  <title>Condition উদাহরণ</title>
</head>
<body>
  <script>
    let temperature = 32;

    if (temperature > 35) {
      console.log("খুব গরম");
    } else if (temperature > 25) {
      console.log("মোটামুটি গরম");
    } else {
      console.log("ঠান্ডা আবহাওয়া");
    }

    let isRaining = false;
    let advice = isRaining ? "ছাতা নিয়ে বের হও" : "ছাতা লাগবে না";
    console.log(advice);

    let fruit = "আম";
    switch (fruit) {
      case "আম":
        console.log("গ্রীষ্মের ফল");
        break;
      case "কমলা":
        console.log("শীতের ফল");
        break;
      default:
        console.log("অচেনা ফল");
    }
  </script>
</body>
</html>

নিজে চেষ্টা করো

Exercise:

  1. একটা marks variable বানাও, if/else if/else দিয়ে গ্রেড (A+, A, C, F) বের করো
  2. একটা boolean variable দিয়ে ternary operator ব্যবহার করো একটা মেসেজ ঠিক করতে
  3. switch দিয়ে সপ্তাহের একটা দিন অনুযায়ী আলাদা মেসেজ দেখাও
  4. ইচ্ছাকৃতভাবে কোনো একটা case-এর break বাদ দিয়ে দেখো fall-through কীভাবে ঘটে

পরের পর্বে যা থাকছে

পর্ব ৫-এ আমরা শিখবো Loop — for ও while লুপ দিয়ে কীভাবে একই কাজ বারবার করা যায়, এবং break/continue, উদাহরণসহ।

একটি মন্তব্য পোস্ট করুন

নবীনতর পূর্বতন

যোগাযোগ ফর্ম