বিষয়বস্তুতে চলুন

প্রোগ্রামিংয়ের মৌলিক ধারণা/কেস কন্ট্রোল স্ট্রাকচার

উইকিবই থেকে

সারসংক্ষেপ

[সম্পাদনা]

কেস বা সুইচ স্টেটমেন্ট হল একটি নির্বাচনমূলক নিয়ন্ত্রণ প্রক্রিয়া, যা প্রোগ্রামের চলরাশি বা এক্সপ্রেশনের মানের ভিত্তিতে একাধিক শাখায় (মাল্টিওয়ে ব্রাঞ্চ) নির্বাহের প্রবাহ পরিবর্তন করতে ব্যবহৃত হয়।[]

আলোচনা

[সম্পাদনা]

দ্বিমুখী নির্বাচনের একটি সীমাবদ্ধতা হল এটি কেবল দুটি অপশন বিবেচনা করে। কিন্তু যদি দুইয়ের বেশি অপশন থাকে? নিচের উদাহরণে চারটি অপশন রয়েছে:

     যদি বয়স ১৮ হয়  
        আপনি ভোট দিতে পারবেন  
    অন্যথায় যদি বয়স ৩৯ হয়  
        আপনি মধ্যম বয়সী  
    অন্যথায় যদি বয়স ৬৫ হয়  
        অবসরের কথা ভাবুন  
    অন্যথায়  
        বয়স গুরুত্বহীন

বয়সের মানের ভিত্তিতে উপযুক্ত বার্তা প্রদর্শিত হয়। শেষ অপশনটি ডিফল্ট হিসাবে পরিচিত। যদি বয়স ১৮, ৩৯ বা ৬৫ না হয়, ডিফল্ট বার্তা দেখা যাবে। কিছু ক্ষেত্রে ডিফল্ট অপশন থাকে না।

এই ফ্লোচার্টটি কেস কন্ট্রোল স্ট্রাকচার এর উদাহরণ, যা মাল্টিওয়ে নির্বাচনে ব্যবহৃত হয়। ডিসিশন বক্সে বয়স চলরাশি রাখা হয়েছে। লজিকটি হল: বয়স এর মান বাম থেকে ডানে তালিকাভুক্ত মানের সাথে সমান কিনা তা পরীক্ষা করা। যেমন, বয়স == ১৮ সত্য হলে সংশ্লিষ্ট অ্যাকশন выполняется এবং break এর মাধ্যমে কেস স্ট্রাকচার থেকে বেরিয়ে আসা হয়। মিথ্যা হলে পরবর্তী case এর সাথে তুলনা করা হয়। এটি নেস্টেড if-else স্ট্রাকচারের মতোই কাজ করে।

মাল্টিওয়ে নির্বাচনের জন্য কোড

[সম্পাদনা]

পাইথনে কেস স্ট্রাকচার সমর্থিত নয়। তবে C++/C#/Java/JavaScript/Swift এ কোড নিম্নরূপ:

switch (বয) {
        case 18:
            message = "আপনি ভোট দিতে পারেন।";
            break;
        case 39:
            message = "আপনি মধ্যম বয়সী।";
            break;
        case 65:
            message = "অবসরের পরিকল্পনা করুন।";
            break;
        default:
            message = "বয়স গুরুত্বহীন।";
            break;
    }

বয়স এর মান প্রথম case (১৮) এর সাথে তুলনা করা হয়। সমান হলে সংশ্লিষ্ট বার্তা অ্যাসাইন হয় এবং break এর মাধ্যমে কেস স্ট্রাকচার শেষ হয়।

অনেক প্রোগ্রামিং ভাষায় কেস স্ট্রাকচারে পূর্ণসংখ্যা বা ক্যারেক্টার ডেটা টাইপ প্রয়োজন। উদাহরণস্বরূপ:

    switch (choice) {
        case 'A':
            message = "আপনি A গ্রেডের ছাত্র।";
            break;
        case 'B':
            message = "আপনি B গ্রেডের ছাত্র।";
            break;
        case 'C':
            message = "আপনি C গ্রেডের ছাত্র।";
            break;
        default:
            message = "আরও পড়াশোনা করুন।";
            break;
    }

কেস কন্ট্রোল স্ট্রাকচারের সীমাবদ্ধতা

[সম্পাদনা]

অধিকাংশ ভাষায় রেঞ্জ ব্যবহার করে কেস স্ট্রাকচার বানানো যায় না। যেমন:

   কেস অফ বয়স  
      ০ থেকে ১৭: "আপনি ভোট দিতে পারবেন না।"  
      ১৮ থেকে ৬৪: "আপনি কর্মক্ষম বয়সে আছেন।"  
      ৬৫+: "আপনার অবসর নেওয়া উচিত।"  
   শেষ 

এমন ডিজাইন সিউডোকোড বা ফ্লোচার্ট এ অনুমোদিত, কিন্তু বাস্তবে নেস্টেড if-else এবং জটিল বুলিয়ান এক্সপ্রেশন ব্যবহার করতে হয়:

     যদি বয়স >= ০ এবং <= ১৭  
        "ভোট দিতে পারবেন না"  
    অন্যথায় যদি বয়স >= ১৮ এবং <= ৬৪  
        "কর্মক্ষম বয়স"  
    অন্যথায়  
        "অবসর নিন"

গঠনমূলক প্রোগ্রামিংয়ের সুপারিশ

[সম্পাদনা]

প্রোগ্রামিং ভাষার টেকনিক্যাল সীমার চেয়ে গঠনমূলক প্রোগ্রামিং পদ্ধতি অধিক গুরুত্বপূর্ণ। এই মডিউলটি প্রোগ্রামিংয়ের মৌলিক ধারণা শেখানোর জন্য তৈরি, যেকোনো নির্দিষ্ট ভাষার বিস্তারিত কভার করার জন্য নয়।

মূল পরিভাষা

[সম্পাদনা]
কেস
মাল্টিওয়ে নির্বাচনের নিয়ন্ত্রণ স্ট্রাকচার।
সুইচ
কেস স্ট্রাকচারের অনুরূপ কাজ করে এমন নিয়ন্ত্রণ স্ট্রাকচার।

তথ্যসূত্র

[সম্পাদনা]

cnx.org: প্রোগ্রামিং ফান্ডামেন্টালস – সি++ ব্যবহার করে মডুলার স্ট্রাকচার্ড অ্যাপ্রোচ