কে সিদ্ধান্ত নিয়েছে (এবং কোন ধারণার ভিত্তিতে) যে switchনির্মাণটি (বহু ভাষায়) breakপ্রতিটি বিবৃতিতে ব্যবহার করতে হয়?
আমাদের কেন এমন কিছু লিখতে হবে:
switch(a)
{
case 1:
result = 'one';
break;
case 2:
result = 'two';
break;
default:
result = 'not determined';
break;
}
(পিএইচপি এবং জেএসে এটি লক্ষ্য করা গেছে; এটি ব্যবহার করে সম্ভবত আরও অনেকগুলি ভাষা রয়েছে)
যদি এর switchবিকল্প হয় তবে ifআমরা কেন একই নির্মাণকে ব্যবহার করতে পারি না if? অর্থাৎ,
switch(a)
{
case 1:
{
result = 'one';
}
case 2:
{
result = 'two';
}
default:
{
result = 'not determined';
}
}
বলা হয়ে থাকে যে breakবর্তমানটিকে অনুসরণ করে ব্লকটি কার্যকর করা বাধা দেয়। কিন্তু, কেউ কি সত্যিই এমন পরিস্থিতির মধ্যে চলে যায়, যেখানে বর্তমান ব্লকটি এবং তার অনুসরণকারীদের কার্যকর করার কোনও প্রয়োজন ছিল? আমি না। আমার জন্য, breakসবসময় আছে। প্রতিটি ব্লকে প্রতিটি কোডে।
case 'a': case 'A': case 'b': case 'B'তবে বেশিরভাগ কারণেই আমি করতে পারি না case in [ 'a', 'A', 'b', 'B' ]। কিছুটা ভাল প্রশ্ন হ'ল, আমার বর্তমান পছন্দসই ভাষাতে (সি #), বিরতি বাধ্যতামূলক , এবং কোনও অন্তর্নিহিত পতন নেই ; ভুলে যাওয়া breakএকটি সিনট্যাক্স ত্রুটি ...: \
case TOKEN_A: /*set flag*/; case TOKEN_B: /*consume token*/; break; case TOKEN_C: /*...*/
breakকোন জায়গায় উপস্থিত হল" চেয়ে বাস্তবায়ন করার জন্য একটি উল্লেখযোগ্যভাবে সহজ নিয়ম "একটি লাফ নির্গত যদি না fallthroughএকটি উপস্থিত switch"।
CASEবিবৃতি দৈত্যের সমতুল্য বিবেচনা করে যদি / অন্যটি ব্লক করে।