সি প্রোগ্রামিং এইচটিএমএল সিএসএস জাভাস্ক্রিপ্ট পিএইচপি এসকিউএল
ফোরাম
×

 সি টিউটোরিয়াল

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

সি কন্ট্রোল স্টেটমেন্ট

সি ইফ সি ইফ...ইলস সি ফর লুপ সি হোহাইল লুপ সি ডু...হোহাইল লুপ সি ব্রেক সি কন্টিনিউ সি সুইচ স্টেটমেন্ট সি goto স্টেটমেন্ট

 সি ফাংশন

সি ফাংশন পরিচিতি সি ইউজার কর্তৃক ফাংশন সি ফাংশন টাইপ সি রিকার্সন সি ভ্যারিয়েবল স্কোপ

 সি অ্যারে

সি অ্যারে পরিচিতি সি মালটি-ডাইমেনশনাল অ্যারে সি অ্যারে ফাংশন

 সি স্ট্রিং

সি স্ট্রিং সি স্ট্রিং ফাংশন

 সি পয়েন্টার

সি পয়েন্টার পরিচিত সি পয়েন্টার অ্যারে সি পয়েন্টার ফাংশন সি মেমোরি ম্যানেজমেন্ট

 সি ফাইল এবং স্ট্রাকচার

স্ট্রাকচার পরিচিত স্ট্রাকচার ও পয়েন্টার সি স্ট্রাকচার ও ফাংশন সি ইউনিয়ন ফাইল হ্যান্ডেলিং

 সি অতিরিক্ত টিউটোরিয়াল

সি লাইব্রেরী সি প্রিপ্রোসেসর এবং ম্যাক্রো সি ইনুমিরেশন সি এরর নিয়ন্ত্রণ সি টাইপ কাস্টিং সি বিট ফিল্ড সি ভ্যারিয়েবল আর্গুমেন্ট সি কমান্ড লাইন আর্গুমেন্ট

 

সি switch...case স্টেটমেন্ট


এই অধ্যায় শেষে আপনি সি প্রোগ্রামিং এ সুইচ(switch) স্টেটমেন্ট লেখা শিখবেন।

নেস্টেড if...else স্টেটমেন্ট ব্যবহার করে আপনি অনেক ভ্যালুর বিপরীতে কোনো একটি নির্দিষ্ট কোড ব্লককে এক্সিকিউট(execute) করতে পারেন। কিন্তু আপনি যদি সিঙ্গেল ভ্যারিয়েবলের ভ্যালু চেক করাতে চান তাহলে nested if...else স্টেটমেন্টের পরিবর্তে switch স্টেটমেন্ট ব্যবহার করাই উত্তম হবে।

switch স্টেটমেন্ট প্রায়ই নেস্টেট if...else স্টেটমেন্টের চেয়ে দ্রুততর এবং সুইস স্টেটমেন্টের সিনট্যাক্সও তুলনামূলক সহজ ও স্বচ্ছ।


সুইস সিনট্যাক্স

switch (expression)
 {
    case value1:
        //expression এর ভ্যালু value1 এর সমান হলে এই কোড এক্সিকিউট হবে;
        break;

    case value2:
        //expression এর ভ্যালু value2 এর সমান হলে এই কোড এক্সিকিউট হবে;
        break;
        .
        .
        .
    default:
        //expression এর ভ্যালু কোনো value এর সমান না হলে  এই কোড এক্সিকিউট হবে;
}

switch...case স্টেটমেন্ট কিভাবে কাজ করে?

  • উপরের সিনট্যাক্সে expression প্রোগ্রামে শুধুমাত্র একবার এক্সিকিউশন(execution) হয়।
  • এক্সপ্রেশনের ভ্যালু সুইস ব্লকের যেই case value এর সাথে মিলে যায় প্রোগ্রাম কন্ট্রোল তার কাছে চলে আসে ফলে সেই case value এর কোড ব্লকটি সম্পাদিত(execution) হয়।
  • উপরের সিউডোকোড(pseudocode) এ expression এর ভ্যালু যদি value2 এর সমান হয় তাহলে কম্পাইলার case value2 এর কোড ব্লককে এক্সিকিউট করবে।
  • case value2 এর পরে কোনো break স্টেটমেন্ট না থাকলে সুইস ব্লকের শেষ পর্যন্ত এক্সিকিউশন হবে।
  • এক্সপ্রেশনের ভ্যালু সুইস ব্লকের কোনো case value এর সাথে না মিললে default এর কোড ব্লকটি সম্পাদিত হবে।
  • পরবর্তী case কে এক্সিকিউট থেকে বাধা দিতে break স্টেটমেন্ট ব্যবহার করা হয়।

সুইস স্টেটমেন্ট ফ্লোচার্ট

সুইস স্টেটমেন্ট এর ফ্লোচার্ট

 

উদাহরন ১: সুইস স্টেটমেন্ট

#include<stdio.h>
#include<conio.h>

int main()
    {
    int num;
    clrscr();
    printf("Enter any number (1 to 7) \n: ");
    scanf("%d",&num);
    switch(num)
    {
        case  1:
            printf("Today is Saturday");
            break;
        case  2:
            printf("Today is Sunday");
            break;
        case  3:
            printf("Today is Monday");
            break;
        case  4:
            printf("Today is Tuesday");
            break;
        case  5:
            printf("Today is  Wednesday");
            break;
        case  6:
            printf("Today is Thursday");
            break;
        case  7:
            printf("Today is Friday");
            break;
        default:
            printf("Only enter value 1 to 7");
    }
    getch();
}

আউটপুট

Enter any number (1 to 7): 4 
Today is Tuesday

উপরের প্রোগ্রামে ইউজার 4 ইনপুট দেওয়ায় এক্সপ্রেশনের ভ্যালু case 4 : এর সাথে মিলে গেছে এবং Tuesday প্রিন্ট হয়েছে।


উদাহরন ২: সুইস স্টেটমেন্ট

// সাধারণ ক্যালকুলেটর তৈরির জন্য প্রোগ্রাম
// ইউজার কর্তৃক ইনপুটের উপর ভিত্তিকরে যোগ, বিয়োগ, গুণ অথবা ভাগ সম্পন্ন হবে। 

# include <stdio.h>

int main() {

    char operator;
    double firstNumber,secondNumber;

    printf("Enter an operator (+, -, *,): ");
    scanf("%c", &operator);

    printf("Enter two operands: ");
    scanf("%lf %lf",&firstNumber, &secondNumber);

    switch(operator)
    {
        case '+':
            printf("%.1lf + %.1lf = %.1lf",firstNumber, secondNumber, firstNumber+secondNumber);
            break;

        case '-':
            printf("%.1lf - %.1lf = %.1lf",firstNumber, secondNumber, firstNumber-secondNumber);
            break;

        case '*':
            printf("%.1lf * %.1lf = %.1lf",firstNumber, secondNumber, firstNumber*secondNumber);
            break;

        case '/':
            printf("%.1lf / %.1lf = %.1lf",firstNumber, secondNumber, firstNumber/firstNumber);
            break;

        // অপারেটর কোনো  case ভ্যালু (+, -, *, /) এর সাথে না মিললে এই স্টেটমেন্ট সম্পাদিত হবে। 
        default:
            printf("Error! operator is not correct");
    }

    return 0;
}

আউটপুট

Enter an operator (+, -, *,): -
Enter two operands: 50.27
20.25
32.5 - 12.4 = 30.02

ইউজার - অপারেটর ইনপুট দেওয়ায় ইহা oparetor ভ্যারিয়েবলে জমা হয়েছে। এবং দুটি অপারেন্ড 32.5 এবং 12.4 ইনপুট দেওয়ায় এগুলো যথাক্রমে  firstNumber এবং secondNumber ভ্যারিয়েবলে জমা হয়েছে।

তারপরে প্রোগ্রামের কন্ট্রোল নিচের ব্লকে জাম্প করে।

printf("%.1lf - %.1lf = %.1lf",firstNumber, secondNumber, firstNumber-firstNumber);

অবশেষে break statement সুইস স্টেটমেন্টের সমাপ্তি ঘটায়।

যদি break স্টেটমেন্ট ব্যবহার করা না হত তাহলে সঠিক case এর পরবর্তী সকল case এক্সিকিউট(execute) হত।