বিকল্প / অবস্থা / অন্যথায়

switch একটি একক মান-কে একাধিক case ব্লকের বিপরীতে মেলায় এবং প্রথম মিলযুক্ত ব্লকটি চালায়। কোনো fall-through নেই — প্রতিটি ব্লক সর্বাধিক একবার চলে, এবং তারপর কন্ট্রোল switch থেকে বের হয়।

বাংলা রূপ: বিকল্প / অবস্থা / অন্যথায়

সিনট্যাক্স

switch (<subject>) {
    case <value1>: { <statements> }
    case <value2>:
    case <value3>: { <shared statements> }
    default: { <fallback statements> }
}

প্রতিটি case-এর body { ... }-এ wrap করা আবশ্যক। একাধিক case <value>: লাইন একটি single ব্লকের আগে stack করলে তারা সেই ব্লক শেয়ার করে।

উদাহরণ

function describe(n) {
    switch (n) {
        case 1: { return "one"; }
        case 2:
        case 3: { return "two or three"; }
        default: { return "other"; }
    }
}

print(describe(1));    // one
print(describe(2));    // two or three
print(describe(99));   // other

মিল bnl-এর == সেম্যান্টিক্স ব্যবহার করে — টাইপ মিলতে হবে, কোনো implicit coercion নেই:

switch ("red") {
    case "red":   { print("RGB 255 0 0"); }
    case "green": { print("RGB 0 255 0"); }
    default:      { print("unknown"); }
}

break দিয়ে early exit

আপনি একটি case-এর ভেতরে break; লিখতে পারেন switch থেকে তাড়াতাড়ি বের হতে। কিন্তু case body-এর শেষে পৌঁছালেও একই effect হয়, তাই break সাধারণত প্রয়োজন হয় না — এটি loops-এর সাথে parity-এর জন্য আছে।

কোনো fall-through নেই

আপনি যদি C বা JavaScript থেকে আসেন: bnl-এ case fall-through করে না। ব্লক চলে এবং switch শেষ হয়। এক body একাধিক মানের জন্য চাইলে stacked cases (case X: case Y: { body }) ব্যবহার করুন।

বাংলা রূপ

ফাংশন describe(n) {
    বিকল্প (n) {
        অবস্থা 1: { ফেরত "এক"; }
        অবস্থা 2: { ফেরত "দুই"; }
        অন্যথায়: { ফেরত "অন্য"; }
    }
}

আরও দেখুন

  • break — case থেকে explicit exit।
  • if / else — non-equality শর্তের জন্য।