অনেক উত্তর বিবৃতি প্রয়োজনীয়তার কারণ হিসাবে পড়ার ক্ষমতা উপর ফোকাস বলে মনে হচ্ছে break
।
আমি বিশ্বাস করি এটি কেবল একটি ভুল ছিল, মূলত কারণ সি এর নকশা করা হয়েছিল তখন এই নির্মাণগুলি কীভাবে ব্যবহৃত হবে সে সম্পর্কে প্রায় ততটা অভিজ্ঞতা ছিল না।
পিটার ভ্যান ডের লিন্ডেন তাঁর "বিশেষজ্ঞ সি প্রোগ্রামিং" বইটিতে মামলাটি করেছেন:
আমরা কতবার ডিফল্ট পতনের মধ্য দিয়ে ব্যবহৃত হত তা দেখতে সান সি সংকলক উত্স বিশ্লেষণ করেছি। সান এএনএসআই সি সংকলক সামনের প্রান্তে 244 সুইচ স্টেটমেন্ট রয়েছে, যার প্রত্যেকটিতে গড়ে সাতটি কেস রয়েছে। এই সমস্ত ক্ষেত্রে মাত্র 3% এর মধ্যে পড়ে।
অন্য কথায়, স্বাভাবিক স্যুইচ আচরণটি 97% সময় ভুল । এটি কেবলমাত্র একটি সংকলক নয় - বিপরীতে, যেখানে এই বিশ্লেষণে পড়ার বিষয়টি ব্যবহার করা হত এটি অন্যান্য সফ্টওয়্যারের তুলনায় সংকলকটিতে প্রায়শই ঘন ঘন ঘটে এমন পরিস্থিতিতে যেমন উদাহরণস্বরূপ, অপারেটরগুলির সংকলন যখন এক বা দুটি অপারেন্ড থাকতে পারে :
switch (operator->num_of_operands) {
case 2: process_operand( operator->operand_2);
/* FALLTHRU */
case 1: process_operand( operator->operand_1);
break;
}
কেস ফ্যাল এর মাধ্যমে এত ত্রুটি হিসাবে ব্যাপকভাবে স্বীকৃতি পেয়েছে যে উপরে দেখানো একটি বিশেষ মন্তব্য সম্মেলনও রয়েছে যা লিঙ্ককে বলে যে "এটি সত্যিকারের সেই 3% ক্ষেত্রেই দেখা যায় যেখানে পড়ে যাওয়ার ইচ্ছা ছিল।"
আমি মনে করি যে প্রতিটি কেস ব্লকের শেষে (# একাধিক কেস লেবেল সজ্জিত করার অনুমতি দেওয়ার পরে - যতক্ষণ না কেবলমাত্র বিবৃতিগুলির একক ব্লক রয়েছে) সি'র পক্ষে সুস্পষ্ট জাম্পের বিবৃতি প্রয়োজন। সি # তে আপনার এখনও একটি কেস অন্য ক্ষেত্রে পড়তে পারে - আপনি কেবল একটি ব্যবহার করে পরবর্তী কেসটিতে ঝাঁপিয়ে পড়ে স্পষ্ট করে দিতে হবে goto
।
এটা খুব খারাপ জাভা সি শব্দার্থবিজ্ঞান থেকে বিরতি সুযোগ নেয় নি।