কম্পিউটার টিউটোরিয়াল

সি ভাষায় ডিসিশন মেকিং স্টেটমেন্ট (if, if-else, switch) ফ্লোচার্ট ও প্রোগ্রামসহ

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

  • সিম্পল if
  • if-else
  • নেস্টেড if-else
  • else-if ল্যাডার
  • switch স্টেটমেন্ট

১. সিম্পল if স্টেটমেন্ট

শর্ত সত্য হলে স্টেটমেন্ট ব্লক এক্সিকিউট হয়।

if (condition) {
    statement(s);
}

উদাহরণ: ৫০ চেয়ে বড় কিনা

#include <stdio.h>
int main() {
    int a;
    printf("Enter a number: ");
    scanf("%d", &a);
    if (a > 50)
        printf("%d is greater than 50\n", a);
    return 0;
}

আউটপুট

Enter a number: 60
60 is greater than 50

২. if-else স্টেটমেন্ট

শর্ত সত্য হলে if-ব্লক, মিথ্যা হলে else-ব্লক এক্সিকিউট হয়।

if (condition) {
    // true block
} else {
    // false block
}

উদাহরণ: জোড়/বিজোড় চেক

#include <stdio.h>
int main() {
    int n;
    printf("Enter a number: ");
    scanf("%d", &n);
    if (n % 2 == 0)
        printf("%d is even\n", n);
    else
        printf("%d is odd\n", n);
    return 0;
}

৩. নেস্টেড if-else

এক if-এর ভিতরে অন্য if-else।

if (cond1) {
    if (cond2) stmt1;
    else stmt2;
} else {
    if (cond3) stmt3;
    else stmt4;
}

উদাহরণ: তিনটি সংখ্যার মধ্যে সবচেয়ে বড়

#include <stdio.h>
int main() {
    int a, b, c;
    printf("Enter 3 numbers: ");
    scanf("%d %d %d", &a, &b, &c);

    if (a > b) {
        if (a > c) printf("%d is largest\n", a);
        else printf("%d is largest\n", c);
    } else {
        if (b > c) printf("%d is largest\n", b);
        else printf("%d is largest\n", c);
    }
    return 0;
}

আউটপুট

Enter 3 numbers: 10 20 30
30 is largest

৪. else-if ল্যাডার (Multi-way Decision)

if (cond1) stmt1;
else if (cond2) stmt2;
else if (cond3) stmt3;
...
else stmt_default;

উদাহরণ: দ্বিঘাত সমীকরণের রুট

#include <stdio.h>
#include <math.h>

int main() {
    int a, b, c, d;
    float r1, r2;

    printf("Enter a b c: ");
    scanf("%d %d %d", &a, &b, &c);

    d = b*b - 4*a*c;

    if (d > 0) {
        r1 = (-b + sqrt(d)) / (2*a);
        r2 = (-b - sqrt(d)) / (2*a);
        printf("Roots: %.2f, %.2f\n", r1, r2);
    } else if (d == 0) {
        r1 = r2 = -b / (2*a);
        printf("Equal roots: %.2f\n", r1);
    } else {
        printf("Roots are imaginary\n");
    }
    return 0;
}

৫. switch স্টেটমেন্ট

এক্সপ্রেশনের ভ্যালুর উপর ভিত্তি করে একাধিক কেস থেকে একটি নির্বাচন করে।

switch (expression) {
    case val1: stmt1; break;
    case val2: stmt2; break;
    ...
    default: stmt_default;
}

উদাহরণ: সংখ্যা থেকে শব্দ

#include <stdio.h>
int main() {
    int n;
    printf("Enter a number (0-1): ");
    scanf("%d", &n);

    switch (n) {
        case 0: printf("zero\n"); break;
        case 1: printf("one\n"); break;
        default: printf("wrong choice\n");
    }
    return 0;
}

আউটপুট

Enter a number: 1
one

সতর্কতা

  • break না দিলে ফল-থ্রু (fall-through) হবে — পরবর্তী কেসও এক্সিকিউট হবে।
  • switch শুধু ইন্টিজার/ক্যারেক্টার এক্সপ্রেশন kabul করে।
  • default অপশনাল কিন্তু রিকমেন্ডেড।
  1. C ভাষায় putw() এবং getw() ফাংশন ব্যাখ্যা

  2. সি ভাষায় স্ট্রিং থেকে নম্বর এবং নম্বর থেকে স্ট্রিং কনভার্সন

  3. সি ভাষায় পয়েন্টার এবং অ্যারের পারস্পরিক সম্পর্ক

  4. সি ভাষায় লুপ কন্ট্রোল স্টেটমেন্ট (for, while, do-while) ফ্লোचार্ট ও প্রোগ্রামসহ ব্যাখ্যা