বিকল্প / অবস্থা / অন্যথায়
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: { ফেরত "দুই"; }
অন্যথায়: { ফেরত "অন্য"; }
}
}