সি শার্প ডিসিশন মেকিং

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

নিচে ডিসিশন মেকিং এর একটি সাধারণ কাঠামো বা স্ট্রাকচার দেখানো হল

সি শার্প ইফ-ইলস

 

সি শার্প ডিসিশন মেকিং এর জন্য নিচের স্টেটমেন্ট গুলো ব্যবহার করা হয়

১. ইফ (if) স্টেটমেন্ট

২. ইফ…ইলস (if….else) স্টেটমেন্ট

৩. নেস্টেড ইফ (nested if) স্টেটমেন্ট

৪. সুইচ (switch) স্টেটমেন্ট

৫. নেস্টেড সুইচ (nested switch) স্টেটমেন্ট

১. ইফ (if) স্টেটমেন্টঃ ইফ স্টেটমেন্টে একটি বুলিয়ান স্টেটমেন্ট বা কন্ডিশন থাকে । যদি কোন কন্ডিশন সত্য হয় তাহলে ভিতরের কোড গুলো এক্সিকিউট করবে । আর যদি কন্ডিশন মিথ্যা হয়, তাহলে ভিতরের কোড গুলোকে এক্সিকিউট না করে প্রোগ্রামের পরবর্তী অংশে চলে যাবে । এভাবে আমরা প্রয়োজন অনুযায়ী ইফ স্টেটমেন্টে ব্যবহার করতে পারি । এর ফলে  যতগুলো ইফ স্টেটমেন্টের কন্ডিশন সত্য হবে, সবগুলোর ভিতরের কোড গুলো এক্সিকিউট হবে ।

একটি ফ্লোচার্টের মাধ্যমে আমরা ইফ স্টেটমেন্টের একটা ধারনা পেতে পারি

ইফ কন্ডিশন সি শার্প

সিনট্যাক্সঃ

 if (বুলিয়ান_এক্সপ্রেশন _কন্ডিশন)

{

/*………………স্টেটমেন্টস ………………

…………………………………………………*/

}

উদাহারনঃ

int number1 = 10;

int number2 = 15;

if (number1==10)

{

    Console.WriteLine(“Number is : “ + number1);

}

if (number2==15)

{

    Console.WriteLine(“Number is : “ + number2);

}

if (number2==20)

{

    Console.WriteLine(“Number is : “ + number2);

}

Console.ReadKey();

 

অউটপুটঃ

if Statement(output)

২. ইফ…ইলস (if….else) স্টেটমেন্টঃ ইফ স্টেটমেন্টের মত ইফ ইলস স্টেটমেন্টের  একটি বুলিয়ান স্টেটমেন্ট বা কন্ডিশন থাকে । যদি কোন কন্ডিশন সত্য হয় তাহলে ভিতরের কোড গুলো এক্সিকিউট করবে । আর যদি কন্ডিশন মিথ্যা হয়, তাহলে ভিতরের কোড গুলোকে এক্সিকিউট না করে পূর্বনির্ধারিত বা ডিফল্ট কোড গুলোকে এক্সিকিউট করবে ।

একটি ফ্লোচার্টের মাধ্যমে আমরা ইফ ইলস স্টেটমেন্টের একটা ধারনা পেতে পারি

সি শার্প ইফ-ইলস

সিনট্যাক্সঃ

if (বুলিয়ান_এক্সপ্রেশন _কন্ডিশন)

{

/*………………স্টেটমেন্টস ………………

 …………………………………………………*/

}

else

{

    /*………………স্টেটমেন্টস ………………

 …………………………………………………*/

}

উদাহারনঃ

Console.WriteLine(“Please Input 10 to Make Condition True”);

int number = Convert.ToInt32(Console.ReadLine());

if (number==10)

{

Console.WriteLine(“Condition is True and Your Number is : “ + number);

}

else

{

Console.WriteLine(“Condition is False and Your Number is : “ + number);

}

Console.ReadKey();

অউটপুটঃ

if-else Statement(output)1

if-else Statement(output)2

ইফ ইলস স্টেটমেন্টের আর একটি স্ট্রাকচার হল ইফ…ইলস ইফ…ইলস (if…else if…else) । এই স্ট্রাকচারের মাধ্যমে প্রয়োজন অনুযায়ী কন্ডিশন সেট করা যায়, কিন্তু কন্ডিশন গুলোর মধ্যে যদি কোন একটি কন্ডিশন সত্য হয়, তাহলে পরের কন্ডিশন গুলো আর এক্সিকিউট করবে না । যদি কোন কন্ডিশন সত্য না হয়, তাহলে পূর্বনির্ধারিত বা ডিফল্ট কোড গুলোকে এক্সিকিউট করবে ।

সিনট্যাক্সঃ

if (বুলিয়ান_এক্সপ্রেশন _কন্ডিশন ১)

{

/*………………স্টেটমেন্টস ………………

 …………………………………………………*/

}

else if (বুলিয়ান_এক্সপ্রেশন _কন্ডিশন ২ )

{

/*………………স্টেটমেন্টস ………………

 …………………………………………………*/

}

else if (বুলিয়ান_এক্সপ্রেশন _কন্ডিশন ৩)

{

 /*………………স্টেটমেন্টস ………………

 …………………………………………………*/

}

else

{

 /*………………স্টেটমেন্টস ………………

 …………………………………………………*/

}

উদাহারনঃ

Console.WriteLine(“Please Input Your Avarage Number to Know Your Grade”);

int number = Convert.ToInt32(Console.ReadLine());

if (number >= 80 && number<=100)

{

Console.WriteLine(“Your Grade is A”);

}

else if (number >= 70 && number < 80)

{

Console.WriteLine(“Your Grade is B”);

}

else if (number >= 60 && number < 70)

{

Console.WriteLine(“Your Grade is C”);

}

else if (number < 60 && number >= 0)

{

Console.WriteLine(“Your Grade is F”);

}

else

{

Console.WriteLine(“Invalid Input”);

}

Console.ReadKey();

অউটপুটঃ

if-else if-else Statement(output)1

if-else if-else Statement(output)2

৩.নেস্টেড ইফ (nested if) স্টেটমেন্টঃ যদি ইফ (if) স্টেটমেন্ট, ইফ ইলস (if else) স্টেটমেন্ট, ইফ ইলস ইফ ইলস (if else if else) স্টেটমেন্টের ভিতরে যদি পুনরায় এই সকল স্টেটমেন্ট ব্যবহার করা হয় তাহলে এই ধরনের স্টেটমেন্টকে নেস্টেড ইফ স্টেটমেন্ট বলা হয় ।

সিনট্যাক্সঃ

if (বুলিয়ান_এক্সপ্রেশন _কন্ডিশন ১)

{

if (বুলিয়ান_এক্সপ্রেশন _কন্ডিশন ২)

{

       if (বুলিয়ান_এক্সপ্রেশন _কন্ডিশন ৩)

{

/*………………স্টেটমেন্টস ………………

 …………………………………………………*/

}

}

else

{

/*………………স্টেটমেন্টস ………………

 …………………………………………………*/

}

}

উদাহারনঃ

int number1 = 252, number2 = 50, number3 = 815;

if (number1 >= number2)

{

if (number1 >= number3)

{

       Console.WriteLine(“Largest number: ” + number1);

}

else

{

       Console.WriteLine(“Largest number: ” + number3);

 }

}

else

{

if (number2 >= number3)

{

Console.WriteLine(“Largest number: ” + number2);

}

else

{

 Console.WriteLine(“Largest number: ” + number3);

}

}

Console.ReadKey();

অউটপুটঃ

nested if Statement(output)

৪.সুইচ (switch) স্টেটমেন্টঃ ইফ ইলস (if else) স্টেটমেন্টের মত প্রোগ্রামে কন্ডিশন সেট করার জন্য সুইচ স্টেটমেন্ট ব্যবহার করা হয় । সুইচ স্টেটমেন্টের মাধ্যমে একটি নির্দিষ্ট ভ্যালুকে এক বা একাধিক ভ্যালুর সাথে তুলনা করা যায় । প্রত্যেকটা ভ্যালুকে কেইস বলা হয় । যদি কোন কন্ডিশনের সাথে ভ্যালু মিলে যায়, তাহলে সেই কেইসের স্টেটমেন্ট বা কোড গুলো এক্সিকিউট করে, আর না মিললে পূর্বনির্ধারিত বা ডিফল্ট কোড গুলোকে এক্সিকিউট করে । একটি ফ্লোচার্টের মাধ্যমে আমরা সুইচ স্টেটমেন্টের একটা ধারনা পেতে পারি

Switch Case C#

সিনট্যাক্সঃ

switch (এক্সপ্রেশন)

{

case অপরিবর্তনীয়-এক্সপ্রেশন :

/*………………স্টেটমেন্টস ………………

 …………………………………………………*/

break;

case অপরিবর্তনীয়-এক্সপ্রেশন :

/*………………স্টেটমেন্টস ………………

 …………………………………………………*/

break;

default :

   /*………………স্টেটমেন্টস ………………

 …………………………………………………*/

break;

}

উদাহারনঃ

int caseSwitch = 1;

switch (caseSwitch)

{

    case 1:

        Console.WriteLine(“Case 1”);

        break;

    case 2:

        Console.WriteLine(“Case 2”);

        break;

    default:

        Console.WriteLine(“Default case”);

        break;

}

আউটপুটঃ

Switch Case output C#

৫. নেস্টেড সুইচ (nested switch) স্টেটমেন্টঃ নেস্টেড ইফ স্টেটমেন্টের মত যদি কোন সুইচ স্টেটমেন্টের ভিতরে যদি পুনরায় সুইচ স্টেটমেন্ট ব্যবহার করা হয় তাহলে এই ধরনের স্টেটমেন্টকে নেস্টেড সুইচ স্টেটমেন্ট বলা হয় । প্রোগ্রামের প্রয়োজন অনুসারে  একাধিক নেস্টেড সুইচ স্টেটমেন্ট ব্যবহার করা যায় ।

সিনট্যাক্সঃ

switch (এক্সপ্রেশন)

{

case অপরিবর্তনীয়-এক্সপ্রেশন :

switch (এক্সপ্রেশন)

{

case অপরিবর্তনীয়-এক্সপ্রেশন :

/*………………স্টেটমেন্টস ………………

 …………………………………………………*/

break;

}

break;

default :

   /*………………স্টেটমেন্টস ………………

 …………………………………………………*/

break;

}

উদাহারনঃ

int j = 5;

switch (j)

{

case 5:

Console.WriteLine(5);

    switch (j – 1)

    {

          case 4:

        Console.WriteLine(4);

        switch (j – 2)

        {

              case 3:

Console.WriteLine(3);

            break;

        }

        break;

    }

    break;

    case 10:

    Console.WriteLine(10);

    break;

    case 15:

    Console.WriteLine(15);

    break;

    default:

    Console.WriteLine(100);

    break;

}

Console.ReadKey();

অউটপুটঃ

nested Switch Statement(output)

? : অপারেটরঃ

কন্ডিশনাল অপারেটর ? : সম্পর্কে পূর্বের টিউটোরিয়ালে (সি শার্প অপারেটর) আলোচনা করা হয়েছে । এই অপারেটরটিকে আমরা ইফ…ইলসের বিকল্প হিসাবে বা পরিবর্তে ব্যবহার করতে পারি ।

সিনট্যাক্সঃ

এক্সপ্রেশন ১ ? এক্সপ্রেশন ২ : এক্সপ্রেশন ৩;

অর্থাৎ এক্সপ্রেশন ১ যদি সত্য হয় এক্সপ্রেশন ২ এক্সিকিউট হবে । যদি এক্সপ্রেশন ১ মিথ্যা হয় তাহলে এক্সপ্রেশন ৩ এক্সিকিউট হবে ।

উদাহারনঃ

string name = “Sailor”;

string value = name == “Sailor” ? “name has “ + name.Length + ” charecters “ : “Statement False”;

Console.WriteLine(value);

conditional operator output

লেখক পরিচিতিঃ

Ashiqur Rahman