এখানে একটি খুব সরল উদাহরণ । এটি অগত্যা কোনও ভাষা-নির্দিষ্ট প্রশ্ন নয়, এবং আমি আপনাকে অনুরোধ করছি যে ফাংশনটি লিখিত হতে পারে এবং এতে পরিবর্তন করা যেতে পারে এমন আরও অনেকগুলি উপায়ে আপনি এড়িয়ে যান। । রঙ একটি অনন্য ধরণের
string CanLeaveWithoutUmbrella()
{
if(sky.Color.Equals(Color.Blue))
{
return "Yes you can";
}
else
{
return "No you can't";
}
}
আমি প্রচুর লোকের সাথে দেখা করেছি, রিশ্যার্পার এবং এই লোকটি (যার মন্তব্য আমাকে মনে করিয়ে দিয়েছিল আমি কিছুক্ষণের জন্য এটি জিজ্ঞাসা করতে চেয়েছি ) else
ব্লকটি সরিয়ে ফেলতে কোডটি রিফ্যাক্ট করার পরামর্শ দিবে :
(সংখ্যাগরিষ্ঠরা যা বলেছেন তা আমি স্মরণ করতে পারি না, আমি অন্যথায় এটি জিজ্ঞাসা নাও করতে পারি)
string CanLeaveWithoutUmbrella()
{
if(sky.Color.Equals(Color.Blue))
{
return "Yes you can";
}
return "No you can't";
}
প্রশ্ন:else
ব্লকটি অন্তর্ভুক্ত না করে জটিলতা বাড়ানো কি ?
else
উভয় ব্লকের কোডই সরাসরি সম্পর্কিত কিনা তা উল্লেখ করে আমি আরও প্রত্যক্ষভাবে রাষ্ট্রের অভিপ্রায়ের আওতায় আছি ।
অতিরিক্তভাবে আমি দেখতে পেয়েছি যে আমি যুক্তিতে সূক্ষ্ম ভুলগুলি আটকাতে পারি, বিশেষ করে পরবর্তী তারিখে কোড পরিবর্তন করার পরে।
আমার সরলীকৃত উদাহরণের এই প্রকরণটি ধরুন ( or
অপারেটরটি যেহেতু এটি উদ্দেশ্যমূলকভাবে সরলীকৃত উদাহরণ , তা উপেক্ষা করছেন ):
bool CanLeaveWithoutUmbrella()
{
if(sky.Color != Color.Blue)
{
return false;
}
return true;
}
if
প্রথম শর্তটি তাত্ক্ষণিকভাবে যথাযথভাবে স্বীকৃতি না দিয়ে নিজের অবস্থার প্রতিবন্ধকতা স্থাপনের পরে কেউ এখন প্রথম উদাহরণের পরে একটি শর্তের ভিত্তিতে একটি নতুন ব্লক যুক্ত করতে পারে।
যদি কোনও else
ব্লক উপস্থিত থাকে, তবে যে কেউ নতুন শর্ত যুক্ত করেছে তাকে else
ব্লকের বিষয়বস্তু সরিয়ে নিতে বাধ্য করা হবে (এবং যদি তারা কোনওরকমভাবে উজ্জ্বলতা দেখায় তবে কোডটি অ্যাক্সেসযোগ্য নয়, যা if
অন্যকে বাধ্য করার ক্ষেত্রে তা নয় ) ।
অবশ্যই নির্দিষ্ট উপায় যে কোনও উপায়ে সংজ্ঞায়িত করা উচিত অন্যান্য উপায় রয়েছে, এর সবগুলিই সেই পরিস্থিতি রোধ করে তবে এটি কেবল একটি উদাহরণ।
আমি যে উদাহরণটি দিয়েছি তার দৈর্ঘ্যটি এর চাক্ষুষ দিকটি আঁকতে পারে, সুতরাং ধরে নিন যে বন্ধনী পর্যন্ত নেওয়া স্থানটি বাকি পদ্ধতির তুলনায় অপেক্ষাকৃত তুচ্ছ।
আমি এমন একটি ক্ষেত্রে উল্লেখ করতে ভুলে গেছি যার সাথে আমি অন্য একটি ব্লক বাদ দেওয়ার সাথে একমত, এবং যখন কোনও if
ব্লক ব্যবহার করে কোনও সীমাবদ্ধতা প্রয়োগ করতে হয় যা নীচের সমস্ত কোডের জন্য যৌক্তিকভাবে সন্তুষ্ট থাকতে হবে , যেমন নাল-চেক (বা অন্য কোনও রক্ষী) must ।
else
ধারাটি লেখার সময় উপরের মতো একটি মামলা আরও পাঠযোগ্য হতে পারে (আমার স্বাদ অনুসারে, অযৌক্তিক বন্ধনী ছেড়ে দেওয়ার সময় এটি আরও বেশি পঠনযোগ্য হবে। তবে আমি মনে করি উদাহরণটি ভালভাবে বেছে নেওয়া হয়নি, কারণ উপরের কেসটি আমি লিখব return sky.Color == Color.Blue
(অন্যথায় / না হলে) b বুলের চেয়ে আলাদা রিটার্ন টাইপের একটি উদাহরণ সম্ভবত এই পরিষ্কার করে দেবে