beginner#conditionalUpdated: 2026-05-13

শর্তমূলক স্টেটমেন্ট (Conditional Statement)


১. ভূমিকা — বৃষ্টি হলে ছাতা নাও!

তুমি সকালে উঠে বাইরে তাকাও।

  • বৃষ্টি হচ্ছে? → ছাতা নাও
  • রোদ আছে? → স্বাভাবিকভাবে বেরিয়ে যাও

এই সিদ্ধান্ত নেওয়ার ক্ষমতাই প্রোগ্রামে যোগ করে Conditional Statement (শর্তমূলক স্টেটমেন্ট)

প্রোগ্রাম শুধু ক্যালকুলেশন করে না — সিদ্ধান্তও নিতে পারে!


২. সমস্যা — প্রোগ্রাম কি সিদ্ধান্ত নিতে পারে?

ধরো তুমি একটি পরীক্ষার ফলাফল প্রোগ্রাম বানাচ্ছো:

printf("পাস");   // সবসময় পাস দেখাবে — ভুল!

তোমার দরকার:

  • যদি নম্বর ৩৩ বা বেশি → "পাস"
  • না হলে → "ফেল"

Conditional Statement ছাড়া এটা সম্ভব নয়।


৩. চিত্রের মাধ্যমে বোঝো

Conditional Statement-এর রাস্তা:

একটি রাস্তা → শর্ত পরীক্ষা → দুটি পথ
                    │
               ┌────┴────┐
               │ সত্য?   │
               └────┬────┘
          হ্যাঁ ↓       ↓ না
       [A করো]     [B করো]
               ↓       ↓
               └───┬───┘
                 [চলো]

৪. বাস্তব জীবনের সাথে মিল

দারোয়ানের মতো ভাবো:

একটি ভবনের দারোয়ান:

  • পরিচয়পত্র আছে? → ভেতরে যাও
  • নেই? → থামো

if-else ঠিক এই কাজ করে। প্রতিটি সিদ্ধান্তে একটি শর্ত পরীক্ষা করে এবং দুটি পথের যেকোনো একটিতে যায়।


Module 1: সংজ্ঞা ও ধারণা

if Statement:

if (শর্ত) {
    // শর্ত সত্য হলে চলবে
}

if-else Statement:

if (শর্ত) {
    // সত্য হলে
} else {
    // মিথ্যা হলে
}

if-else if-else (Ladder):

if (শর্ত১) {
    // শর্ত১ সত্য
} else if (শর্ত২) {
    // শর্ত২ সত্য
} else if (শর্ত৩) {
    // শর্ত৩ সত্য
} else {
    // কোনোটাই না
}

switch Statement:

switch (variable) {
    case মান১:
        // কোড
        break;
    case মান২:
        // কোড
        break;
    default:
        // অন্য সব মানের জন্য
}

Module 2: কীভাবে কাজ করে

if (marks >= 33)

ধাপ ১: marks-এর মান পড়ো (ধরো 75)
ধাপ ২: 75 >= 33 → true (1)
ধাপ ৩: শর্ত true → if block চালাও

if (marks >= 33)

ধাপ ১: marks-এর মান পড়ো (ধরো 20)
ধাপ ২: 20 >= 33 → false (0)
ধাপ ৩: শর্ত false → else block চালাও

Module 3: প্যাটার্ন ও উদাহরণ

প্যাটার্ন ১: Simple if

উদাহরণ ১.১: বৃষ্টি হলে ছাতা নাও

#include <stdio.h>

int main() {
    int isRaining = 1;  // 1 = বৃষ্টি, 0 = নেই
    
    if (isRaining == 1) {
        printf("ছাতা নিয়ে বেরিয়ে যাও!\n");
    }
    printf("ভালো থেকো।\n");
    return 0;
}

আউটপুট:

ছাতা নিয়ে বেরিয়ে যাও!
ভালো থেকো।

উদাহরণ ১.২: বয়স যাচাই

#include <stdio.h>

int main() {
    int age;
    printf("বয়স: ");
    scanf("%d", &age);
    
    if (age >= 18) {
        printf("ভোট দিতে পারবে।\n");
    }
    return 0;
}

উদাহরণ ১.৩: ধনাত্মক সংখ্যা

#include <stdio.h>

int main() {
    int n;
    printf("সংখ্যা দাও: ");
    scanf("%d", &n);
    
    if (n > 0) {
        printf("%d ধনাত্মক সংখ্যা।\n", n);
    }
    return 0;
}

প্যাটার্ন ২: if-else

উদাহরণ ২.১: পাস/ফেল

#include <stdio.h>

int main() {
    int marks;
    printf("নম্বর দাও: ");
    scanf("%d", &marks);
    
    if (marks >= 33) {
        printf("অভিনন্দন! তুমি পাস করেছো।\n");
    } else {
        printf("দুঃখিত, ফেল হয়েছো। আরও পড়ো।\n");
    }
    return 0;
}

উদাহরণ ২.২: জোড় না বিজোড়

#include <stdio.h>

int main() {
    int n;
    printf("সংখ্যা দাও: ");
    scanf("%d", &n);
    
    if (n % 2 == 0) {
        printf("%d জোড় সংখ্যা।\n", n);
    } else {
        printf("%d বিজোড় সংখ্যা।\n", n);
    }
    return 0;
}

উদাহরণ ২.৩: বড় সংখ্যা

#include <stdio.h>

int main() {
    int a, b;
    printf("দুটি সংখ্যা দাও: ");
    scanf("%d %d", &a, &b);
    
    if (a > b) {
        printf("%d বড়।\n", a);
    } else {
        printf("%d বড়।\n", b);
    }
    return 0;
}

প্যাটার্ন ৩: if-else if-else (Ladder)

উদাহরণ ৩.১: গ্রেড নির্ধারণ (HSC গ্রেডিং)

#include <stdio.h>

int main() {
    int marks;
    printf("নম্বর দাও (০-১০০): ");
    scanf("%d", &marks);
    
    if (marks >= 80) {
        printf("গ্রেড: A+\n");
    } else if (marks >= 70) {
        printf("গ্রেড: A\n");
    } else if (marks >= 60) {
        printf("গ্রেড: A-\n");
    } else if (marks >= 50) {
        printf("গ্রেড: B\n");
    } else if (marks >= 40) {
        printf("গ্রেড: C\n");
    } else if (marks >= 33) {
        printf("গ্রেড: D\n");
    } else {
        printf("গ্রেড: F (ফেল)\n");
    }
    return 0;
}

উদাহরণ ৩.২: তিনটি সংখ্যার মধ্যে সর্বোচ্চ

#include <stdio.h>

int main() {
    int a, b, c;
    printf("তিনটি সংখ্যা দাও: ");
    scanf("%d %d %d", &a, &b, &c);
    
    if (a >= b && a >= c) {
        printf("সর্বোচ্চ: %d\n", a);
    } else if (b >= c) {
        printf("সর্বোচ্চ: %d\n", b);
    } else {
        printf("সর্বোচ্চ: %d\n", c);
    }
    return 0;
}

উদাহরণ ৩.৩: বিএমআই (BMI) ক্যালকুলেটর

#include <stdio.h>

int main() {
    float weight, height, bmi;
    printf("ওজন (কেজি): ");
    scanf("%f", &weight);
    printf("উচ্চতা (মিটার): ");
    scanf("%f", &height);
    
    bmi = weight / (height * height);
    printf("BMI: %.2f\n", bmi);
    
    if (bmi < 18.5) {
        printf("স্বাস্থ্য: কম ওজন\n");
    } else if (bmi < 25.0) {
        printf("স্বাস্থ্য: স্বাভাবিক ✓\n");
    } else if (bmi < 30.0) {
        printf("স্বাস্থ্য: অতিরিক্ত ওজন\n");
    } else {
        printf("স্বাস্থ্য: স্থূলতা\n");
    }
    return 0;
}

প্যাটার্ন ৪: Nested if (ভেতরে if)

উদাহরণ ৪.১: লিপ ইয়ার পরীক্ষা

#include <stdio.h>

int main() {
    int year;
    printf("বছর দাও: ");
    scanf("%d", &year);
    
    if (year % 4 == 0) {
        if (year % 100 == 0) {
            if (year % 400 == 0) {
                printf("%d লিপ ইয়ার।\n", year);
            } else {
                printf("%d লিপ ইয়ার নয়।\n", year);
            }
        } else {
            printf("%d লিপ ইয়ার।\n", year);
        }
    } else {
        printf("%d লিপ ইয়ার নয়।\n", year);
    }
    return 0;
}

উদাহরণ ৪.২: বৃত্তিপাত্র যাচাই

#include <stdio.h>

int main() {
    int marks;
    int attendance;  // শতকরা
    
    printf("নম্বর: ");
    scanf("%d", &marks);
    printf("উপস্থিতি (%%): ");
    scanf("%d", &attendance);
    
    if (marks >= 80) {
        if (attendance >= 75) {
            printf("বৃত্তি পাবে!\n");
        } else {
            printf("নম্বর আছে কিন্তু উপস্থিতি কম।\n");
        }
    } else {
        printf("নম্বর কম, বৃত্তি পাবে না।\n");
    }
    return 0;
}

প্যাটার্ন ৫: switch Statement

উদাহরণ ৫.১: বার নির্ণয়

#include <stdio.h>

int main() {
    int day;
    printf("বার নম্বর দাও (1-7): ");
    scanf("%d", &day);
    
    switch (day) {
        case 1:
            printf("রবিবার\n");
            break;
        case 2:
            printf("সোমবার\n");
            break;
        case 3:
            printf("মঙ্গলবার\n");
            break;
        case 4:
            printf("বুধবার\n");
            break;
        case 5:
            printf("বৃহস্পতিবার\n");
            break;
        case 6:
            printf("শুক্রবার\n");
            break;
        case 7:
            printf("শনিবার\n");
            break;
        default:
            printf("ভুল নম্বর!\n");
    }
    return 0;
}

উদাহরণ ৫.২: ক্যালকুলেটর (switch দিয়ে)

#include <stdio.h>

int main() {
    float a, b;
    char op;
    
    printf("হিসাব লেখো (যেমন: 5 + 3): ");
    scanf("%f %c %f", &a, &op, &b);
    
    switch (op) {
        case '+':
            printf("= %.2f\n", a + b);
            break;
        case '-':
            printf("= %.2f\n", a - b);
            break;
        case '*':
            printf("= %.2f\n", a * b);
            break;
        case '/':
            if (b != 0)
                printf("= %.2f\n", a / b);
            else
                printf("শূন্য দিয়ে ভাগ করা যায় না!\n");
            break;
        default:
            printf("অজানা অপারেটর!\n");
    }
    return 0;
}

উদাহরণ ৫.৩: মাসের দিন সংখ্যা

#include <stdio.h>

int main() {
    int month;
    printf("মাস নম্বর (1-12): ");
    scanf("%d", &month);
    
    switch (month) {
        case 2:
            printf("ফেব্রুয়ারি: ২৮/২৯ দিন\n");
            break;
        case 4:
        case 6:
        case 9:
        case 11:
            printf("এই মাসে ৩০ দিন\n");
            break;
        case 1:
        case 3:
        case 5:
        case 7:
        case 8:
        case 10:
        case 12:
            printf("এই মাসে ৩১ দিন\n");
            break;
        default:
            printf("ভুল মাস!\n");
    }
    return 0;
}

Module 4: বাস্তব প্রয়োগ

পরিস্থিতিConditional
লগইন যাচাইif (password == correct)
ATM PINif (pin == stored)
পরীক্ষার ফলাফলif-else if ladder
ট্রাফিক সিগন্যালswitch (signal_color)
বয়স যাচাইif (age >= 18)
বৃষ্টির সতর্কতাif (rainfall > 100)

Module 5: সাধারণ ভুল ও সতর্কতা

ভুল ১: = এবং == গুলিয়ে ফেলা

❌ ভুল:
if (x = 5)   // x-এ 5 রাখছে, সবসময় true!

✅ সঠিক:
if (x == 5)  // x কি 5 সমান?

ভুল ২: switch-এ break ভুলে যাওয়া

❌ ভুল:
switch (day) {
    case 1:
        printf("রবিবার\n");
        // break নেই! পরের case-এও চলবে
    case 2:
        printf("সোমবার\n");
}

✅ সঠিক:
case 1:
    printf("রবিবার\n");
    break;  // অবশ্যই দাও

ভুল ৩: Semicolon if-এর পরে

❌ ভুল:
if (x > 0);   // Semicolon! if body খালি হয়ে গেছে
{
    printf("ধনাত্মক\n");  // এটা সবসময় চলবে!
}

✅ সঠিক:
if (x > 0) {
    printf("ধনাত্মক\n");
}

ভুল ৪: float তুলনায় সমস্যা

❌ ভুল:
float f = 0.1 + 0.2;
if (f == 0.3)   // false! floating point error

✅ সঠিক:
if (f - 0.3 < 0.0001)   // পার্থক্য যথেষ্ট ছোট কিনা

Module 6: সুবিধা-অসুবিধা

Statementকখন ব্যবহার করবেকখন নয়
ifএকটি শর্ত
if-elseদুটি পথতিনের বেশি শর্তে অপঠনযোগ্য
if-else ifঅনেক শর্তswitch সম্ভব হলে switch ভালো
switchনির্দিষ্ট মান তুলনাrange বা float-এ কাজ করে না

🔁 নিজে পরীক্ষা করো

MCQ:

১. if (x = 5) — এটা কোন ধরনের সমস্যা?

  • ক) Syntax Error
  • খ) Logic Error (Assignment, comparison নয়) ✓
  • গ) Runtime Error
  • ঘ) কোনো সমস্যা নেই

২. switch-এ break না দিলে কী হয়?

  • ক) Error আসে
  • খ) পরের case-ও চলতে থাকে (fall-through) ✓
  • গ) প্রোগ্রাম বন্ধ হয়
  • ঘ) কিছুই হয় না

৩. if-else if-else Ladder-এ সর্বোচ্চ কয়টি শর্ত রাখা যায়?

  • ক) ২
  • খ) ৫
  • গ) ১০
  • ঘ) সীমা নেই ✓

৪. switch statement-এ কোন ডেটা টাইপ ব্যবহার করা যায় না?

  • ক) int
  • খ) char
  • গ) float ✓
  • ঘ) long

৫. Nested if মানে কী?

  • ক) পাশাপাশি if
  • খ) if-এর ভেতরে আরেকটি if ✓
  • গ) if ছাড়া else
  • ঘ) বহু else if

সংক্ষিপ্ত প্রশ্ন:

৬. if-else এবং switch-এর পার্থক্য উদাহরণসহ লেখো।

৭. HSC গ্রেডিং সিস্টেম অনুযায়ী গ্রেড বের করার প্রোগ্রাম লেখো।


📝 HSC পরীক্ষার প্রস্তুতি

১. switch এবং if-else if — একই কাজ করে, তাহলে দুটি আলাদা কেন? কোনটি কখন সুবিধাজনক?

২. Nested if-এর গভীরতা কতটা হওয়া উচিত? বেশি Nested হলে কী সমস্যা?

৩. তুমি যদি একটি ATM প্রোগ্রাম লেখো, কোন কোন জায়গায় Conditional Statement দরকার হবে?


🎯 অনুশীলন প্রশ্ন

সহজ: একটি সংখ্যা ইনপুট নাও। সে ধনাত্মক, ঋণাত্মক নাকি শূন্য — তা নির্ণয় করো।

মাঝারি: তিনটি সংখ্যা ইনপুট নাও এবং সর্বোচ্চ সংখ্যাটি বের করো। (if-else if ব্যবহার করো)

কঠিন: একটি পরীক্ষার ফলাফল প্রোগ্রাম লেখো যা:

  • ৫টি বিষয়ের নম্বর নেবে
  • মোট ও গড় নম্বর বের করবে
  • HSC গ্রেডিং অনুযায়ী গ্রেড দেখাবে
  • পাস/ফেল নির্ধারণ করবে

✅ সারাংশ

🎯 মনে রেখো:

  • Conditional Statement = প্রোগ্রামে সিদ্ধান্ত নেওয়ার ক্ষমতা
  • ৪ ধরন:
    • if → একটি শর্ত
    • if-else → দুটি পথ
    • if-else if-else → অনেক শর্ত
    • switch → নির্দিষ্ট মানের জন্য
  • = (assignment) আর == (comparison) — কখনো গুলাবে না!
  • switch-এ প্রতিটি case-এর পর break দাও
  • if-এর পর Semicolon দিও না
  • switch-এ float ব্যবহার করা যায় না

💡 পরীক্ষার টিপস: HSC-তে গ্রেড নির্ণয় এবং সর্বোচ্চ/সর্বনিম্ন সংখ্যা খোঁজার প্রোগ্রাম প্রায়ই আসে। if-else if ladder ভালো করে অনুশীলন করো।