ট্র্যাক
/
JavaScript
JavaScript
/
সিলেবাস
/
switch স্টেটমেন্ট
sw

switch স্টেটমেন্ট মধ্যে JavaScript

4টি অনুশীলনী

switch স্টেটমেন্ট সম্পর্কে

সাধারণ সিনট্যাক্স

if স্টেটমেন্টের পাশাপাশি JavaScript-এ শর্তসাপেক্ষে লজিক চালানোর জন্য switch স্টেটমেন্টও আছে। একটি ভ্যারিয়েবলকে একাধিক ভ্যারিয়েন্টের সাথে তুলনা করার দরকার হলে এটি ব্যবহার করা হয়। তুলনাটি করা হয় স্ট্রিক্ট ইকুয়ালিটি (===) পরীক্ষা করে, দেখুন তুলনা। x নামের কোনো ভ্যারিয়েবলের জন্য JavaScript-এ switch স্টেটমেন্টের সিনট্যাক্স নিচের মতো।

switch (x) {
  case option1:
    // code that is executed when "x === option1" is true
    break;
  case option2:
    // code that is executed when "x === option2" is true
    break;
  default:
    // code that is executed when x does not equal any of the
    // options
}

default কেসটি ঐচ্ছিক; অন্য কোনো অপশন ভ্যারিয়েবলটির সাথে মিলে না গেলে আপনি কিছু কোড চালাতে চাইলে এটি ব্যবহার করা হয়।

ডিফল্টভাবে ফলথ্রু

উপরের break স্টেটমেন্টগুলো দরকার, কারণ JavaScript-এ ডিফল্টভাবে সব কেসই "ফলথ্রু" হয়। মানে হলো, কোনো break স্টেটমেন্ট না থাকলে প্রথম মিলে যাওয়া অপশনের নিচের সব কেসের কোডই রান হবে, যদিও x ওই অপশনগুলোর সাথে মিলে না। JavaScript-এ switch ব্যবহার করার সময় এই "ডিফল্টভাবে ফলথ্রু" আচরণ একটি কমন বিপদ। একটি ফাংশনের ভেতরে এই সমস্যা এড়াতে break-এর বদলে return-ও ব্যবহার করা যায়।

একাধিক কেসে একই কোড ব্যবহার করতে চাইলে আপনি ফলথ্রু আচরণটিকে কাজে লাগাতে পারেন। এর একটি উদাহরণ পাবেন MDN ডকুমেন্টেশন-এ।

স্কোপ

ডিফল্টভাবে বিভিন্ন case স্টেটমেন্টের ভ্যারিয়েবলগুলো একই স্কোপ ভাগ করে নেয়। এতে অপ্রত্যাশিত আচরণ হতে পারে। যেমন, কোনো কেস কপি-পেস্ট করার কারণে দুটি কেসে let message ডিক্লারেশন থেকে যেতে পারে, যার ফলে এরর হয়; দেখুন MDN ডকুমেন্টেশন। শেয়ার করা স্কোপের কারণে সমস্যা এড়াতে আপনি প্রতিটি কেস স্টেটমেন্টের জন্য দ্বিতীয় বন্ধনী দিয়ে কোড ব্লক যোগ করে আলাদা স্কোপ তৈরি করতে পারেন।

switch (x) {
  case option1: {
    // Variables declared here are contained to this case.
    break;
  }
  case option2: {
    // ...
    break;
  }
  default: {
    // ...
  }
}

এক্সপ্রেশন ব্যবহার

x নামের একটি ভ্যারিয়েবলের বদলে আপনি একটি এক্সপ্রেশনও ব্যবহার করতে পারেন। এই এক্সপ্রেশনটি switch স্টেটমেন্টের শুরুতে একবার ইভ্যালুয়েট করা হয় এবং ফলাফলটি কেসগুলোর সাথে তুলনা করা হয়। এর একটি কমন ব্যবহার হলো "টাইপ সুইচ", যা ভ্যারিয়েবলের টাইপ অনুযায়ী ভিন্ন কোড চালায়।

switch (typeof x) {
  case 'string':
    // code that is executed when x is a string
    break;
  case 'number':
    // code that is executed when x is a number
    break;
  default:
    // code that is executed when x has some other type
}

অপশনগুলোও এক্সপ্রেশন হতে পারে।

GitHub-এর মাধ্যমে সম্পাদনা করুন লিংকটি নতুন একটি উইন্ডো বা ট্যাবে খুলবে

switch স্টেটমেন্ট শিখুন