JavaScript Switch Statement

সুইচ কন্ট্রোল ফ্লো ব্যবহার করে একাধিক শর্ত পরিচালনা করতে শিখুন

নিয়ন্ত্রণ প্রবাহ সুইচ

একটি শর্তের উপর ভিত্তি করে, সুইচ কোডের এক বা একাধিক ব্লক কার্যকর করতে বেছে নেয়।

সুইচ কোডের ব্লকগুলি চালায় যা একটি এক্সপ্রেশনের সাথে মেলে।

সুইচটি অনেকগুলি if...else if...else স্টেটমেন্টের জন্য একটি আরও পঠনযোগ্য বিকল্প হিসাবে ব্যবহৃত হয়, বিশেষ করে যখন অনেকগুলি সম্ভাব্য মান নিয়ে কাজ করা হয়।

সিনট্যাক্স

সুইচ (অভিব্যক্তি) { কেস x: // কোড ব্লক বিরতি কেস y: // কোড ব্লক বিরতি ডিফল্ট: // কোড ব্লক }

এটি কিভাবে কাজ করে:

মূল্যায়ন:সুইচ এক্সপ্রেশন একবার মূল্যায়ন করা হয়
তুলনা:অভিব্যক্তির মান প্রতিটি ক্ষেত্রের মানগুলির সাথে তুলনা করা হয়
আন্দোলন:যদি একটি মিল থাকে, কোডের সংশ্লিষ্ট ব্লকটি কার্যকর করা হয়
অনুপস্থিত মিল:কোন মিল না থাকলে, কোন কোড কার্যকর করা হয় না

উদাহরণ

সপ্তাহের দিন সংখ্যা গণনা করতে এই উদাহরণটি সপ্তাহের দিনের নাম ব্যবহার করে:

switch (new Date().getDay()) {
  case 0:
    day = "Sunday";
    break;
  case 1:
    day = "Monday";
    break;
  case 2:
     day = "Tuesday";
    break;
  case 3:
    day = "Wednesday";
    break;
  case 4:
    day = "Thursday";
    break;
  case 5:
    day = "Friday";
    break;
  case 6:
    day = "Saturday";
}

📅দ্রষ্টব্য:

getDay() পদ্ধতি সপ্তাহের দিনটিকে 0 এবং 6 এর মধ্যে একটি পূর্ণসংখ্যা হিসাবে প্রদান করে।

(রবিবার=0, সোমবার=1, মঙ্গলবার=2 ..)

ব্রেক কীওয়ার্ড

যখন JavaScript একটি বিরতি কীওয়ার্ডে পৌঁছায়, তখন এটি সুইচ ব্লক থেকে প্রস্থান করে।

এটি সুইচ ব্লকের ভিতরে অপারেশন বন্ধ করে দেয়।

সুইচ মডিউলে আর কোন বিবৃতি কার্যকর করা হয় না।

শেষ কেস ভাঙার দরকার নেই। সুইচ সেখানে শেষ হয় (ব্রেক)।

⚠️দ্রষ্টব্য:

ব্রেক কীওয়ার্ডটি "পতন-এর মাধ্যমে" প্রতিরোধ করার জন্য গুরুত্বপূর্ণ।

বিরতি ছাড়াই, কোডটি পরবর্তী কেস ব্লকগুলি (এবং যদি একটি থাকে তবে ডিফল্ট ব্লক) চালাতে থাকবে, এমনকি যদি তাদের মানগুলি অভিব্যক্তির সাথে মেলে না।

বিরতি ছাড়া উদাহরণ:

let result = "";
let day = 2;

switch (day) {
  case 0:
    result += "Sunday ";
  case 1:
    result += "Monday ";
  case 2:
    result += "Tuesday ";
  case 3:
    result += "Wednesday ";
  default:
    result += "Other day";
}

console.log(result); // "Tuesday Wednesday Other day"

ডিফল্ট কীওয়ার্ড

ডিফল্ট কোডের একটি ব্লক নির্দিষ্ট করে যা কার্যকর করা হবে যদি কীওয়ার্ড কেস মেলে না।

ডিফল্ট কীওয়ার্ডটি ঐচ্ছিক।

ডিফল্ট একটি ফলব্যাক হিসাবে কাজ করতে পারে:

উদাহরণ

getDay() পদ্ধতি সপ্তাহের দিনটিকে 0 এবং 6 এর মধ্যে একটি পূর্ণসংখ্যা হিসাবে প্রদান করে।

যদি আজ শনিবার (6) বা রবিবার (0) না হয়, একটি ডিফল্ট বার্তা লিখুন:

switch (new Date().getDay()) {
  case 6:
    text = "Today is Saturday";
    break;
  case 0:
    text = "Today is Sunday";
    break;
  default:
    text = "Looking forward to the Weekend";
}

পাঠ্যের ফলাফল হবে:

"Looking forward to the Weekend"

ডিফল্ট কেস সুইচটি ব্লকের শেষ কেস হতে হবে না:

switch (new Date().getDay()) {
  default:
    text = "Looking forward to the Weekend";
    break;
  case 6:
    text = "Today is Saturday";
    break;
  case 0:
    text = "Today is Sunday";
}

💡দ্রষ্টব্য:

ডিফল্ট কেস ব্রেক দিয়ে শেষ করতে মনে রাখবেন যদি না ডিফল্ট সুইচ ব্লকের শেষ কেস হয়।

সাধারণ কোড ব্লক

কখনও কখনও আপনি একই কোড ব্যবহার করতে বিভিন্ন সুইচ কেস চাইতে পারেন।

এই উদাহরণের ক্ষেত্রে 4 এবং 5 একই কোড ব্লক ভাগ করে, এবং 0 এবং 6 অন্য কোড ব্লক ভাগ করে:

switch (new Date().getDay()) {
  case 4:
  case 5:
    text = "Soon it is Weekend";
    break;
  case 0:
  case 6:
    text = "It is Weekend";
    break;
  default:
    text = "Looking forward to the Weekend";
}

আরো উদাহরণ:

// ঋতুতে মাস শ্রেণীবদ্ধ করুন let month = new Date().getMonth(); ঋতু যাক; পরিবর্তন (মাস) { কেস 11: কেস 0: কেস 1: ঋতু = "শীত"; বিরতি কেস 2: কেস 3: কেস 4: ঋতু = "বসন্ত"; বিরতি কেস 5: কেস 6: কেস 7: ঋতু = "গ্রীষ্ম"; বিরতি কেস 8: কেস 9: কেস 10: ঋতু = "শরৎ"; বিরতি ডিফল্ট: ঋতু = "অবৈধ মাস"; } // গ্রেড শ্রেণীবদ্ধ করুন let grade = 'B'; ফলাফল দিন সুইচ (গ্রেড) { কেস 'এ': কেস 'বি': কেস 'সি': ফলাফল = "পাস"; বিরতি কেস 'ডি': কেস 'এফ': ফলাফল = "ব্যর্থ"; বিরতি ডিফল্ট: ফলাফল = "অবৈধ গ্রেড"; }

বিশদ পরিবর্তন করুন

একাধিক মিল:একাধিক ক্ষেত্রে একটি কেস ভ্যালুর সাথে মিলে গেলে, প্রথম কেসটি নির্বাচন করা হয়
প্রযোজ্য নয়:যদি কোন মিল পাওয়া যায় না, প্রোগ্রামটি ডিফল্ট লেবেলে চলতে থাকে
কোন ডিফল্ট নেই:যদি ডিফল্ট লেবেল পাওয়া না যায়, প্রোগ্রামটি সুইচের পরে বিবৃতিতে চলতে থাকে

একটি কঠোর তুলনা

সুইচ কঠোর তুলনা ব্যবহার করে (===)।

মানগুলি মিলতে একই ক্রমে হতে হবে।

দুটি অপারেটর একই ধরণের হলেই একটি কঠোর তুলনা সত্য হতে পারে।

উদাহরণ

এই উদাহরণে x মেলে না:

let x = "0";
switch (x) {
  case 0:
    text = "Off";
    break;
  case 1:
    text = "On";
    break;
  default:
    text = "No value found";
}

উপরের উদাহরণে, x হল "0" (স্ট্রিং), কিন্তু কেস 0 0 (সংখ্যা) এর সাথে তুলনা করা হয়। কঠোর তুলনার কারণে, তারা মেলে না, তাই ডিফল্ট কেস সক্ষম করা হয়েছে।

🔍সুইচ বনাম যদি... অন্যথায় তুলনা:

সুইচ (কঠোর)

let value = "2"; সুইচ(মান) { কেস 2: // প্রযোজ্য নয় console.log("নম্বর 2"); বিরতি কেস "2": // মিল console.log("স্ট্রিং '2'"); বিরতি }

যদি...অন্যথায় (প্রকার রূপান্তর)

let value = "2"; যদি (মান == 2) { // মিল (প্রকার পরিবর্তন) console.log("নম্বর 2"); } অন্য যদি (মান === "2") { console.log("স্ট্রিং '2'"); }

Switch vs If...Else

বৈশিষ্ট্য Switch If...Else
তুলনা পদ্ধতি কঠোর তুলনা (===) টাইপ পরিবর্তন বা কঠোর
অভিব্যক্তি একটি একক অভিব্যক্তি মূল্যায়ন করে অনেক ভিন্ন অভিব্যক্তি মূল্যায়ন করা যেতে পারে
জটিল অবস্থা একক মান/সীমা জটিল যুক্তি, সীমা, লজিক অপারেটর
পঠনযোগ্যতা অনেক মান জন্য ভাল জটিল যুক্তির জন্য ভাল
কর্মক্ষমতা অনেক ক্ষেত্রে দ্রুত কিছু শর্তের জন্য দ্রুত

কখন সুইচ ব্যবহার করবেন:

একাধিক অনন্য মান:একটি ভেরিয়েবলের জন্য একাধিক নির্দিষ্ট মান পরীক্ষা করার সময়
বিবৃতি:একই অভিব্যক্তি একাধিকবার মূল্যায়ন এড়ানোর সময়
পঠনযোগ্যতা:যখন আপনার একাধিক if...else if স্টেটমেন্টের চেয়ে পরিষ্কার কোডের প্রয়োজন হয়

কখন ব্যবহার করবেন যদি...অন্যথায়:

সীমাবদ্ধতা:মান সীমা পরীক্ষা করার সময় (x > 10)
অনেক ভিন্ন অভিব্যক্তি:বিভিন্ন ভেরিয়েবল বা এক্সপ্রেশন পরীক্ষা করার সময়
লজিক্যাল প্রসেসর:যখন জটিল যুক্তির প্রয়োজন হয় (&&, ||,!)

উন্নত সুইচ উদাহরণ

// switch (getUserRole()) { case 'admin': showAdminPanel(); break; case 'editor': showEditorPanel(); break; case 'viewer': showViewerPanel(); break; default: showLoginScreen(); } // Switch let score = 85; let grade; switch (true) { case score >= 90: grade = 'A'; break; case score >= 80: grade = 'B'; break; case score >= 70: grade = 'C'; break; case score >= 60: grade = 'D'; break; default: grade = 'F'; } // let input = getUserInput(); switch (typeof input) { case 'string': console.log('Input is a string:', input.toUpperCase()); break; case 'number': console.log('Input is a number:', input * 2); break; case 'boolean': console.log('Input is boolean:', !input); break; default: console.log('Unknown input type'); }

জাভাস্ক্রিপ্ট সুইচ স্টেটমেন্ট টিউটোরিয়াল

সুইচ স্টেটমেন্ট সম্পর্কে আপনার জ্ঞান পরীক্ষা করার জন্য এই অনুশীলনটি চেষ্টা করুন।

নিচের কোনটি সুইচ স্টেটমেন্টে কীওয়ার্ড নয়?

switch
✗ ভুল! সুইচ হল একটি সুইচ স্টেটমেন্ট শুরু করতে ব্যবহৃত প্রধান কীওয়ার্ড
break
✗ ভুল! ব্রেক হল একটি কেস থেকে বেরিয়ে আসার জন্য ব্যবহৃত কীওয়ার্ড, "ফল-থ্রু" প্রতিরোধ করে।
continue
✓ ঠিক আছে! অবিরত একটি সুইচ বিবৃতিতে একটি কীওয়ার্ড নয়। কন্টিনিউ লুপগুলিতে ব্যবহৃত হয়, সুইচ নয়। সুইচ স্টেটমেন্টে ব্যবহৃত কীওয়ার্ড: সুইচ, কেস, ব্রেক এবং ডিফল্ট
default
✗ ভুল! ডিফল্ট হল একটি কীওয়ার্ড যেটি কোডের একটি ব্লককে সংজ্ঞায়িত করতে ব্যবহৃত হয় যখন কোনো কেস মেলে না