শিক্ষামূলক প্ল্যাটফর্ম

DYNAMIC CAREER IT & EDUCATION CARE

শিক্ষা, পরীক্ষা প্রস্তুতি ও বিষয়ভিত্তিক পাঠের নির্ভরযোগ্য প্ল্যাটফর্ম
আবেদন ফর্ম
124পাঠক 8মিনিট HSC ICT

সর্বশেষ পোস্ট

20টি
বর্তমান

C Programming If Statement: গঠন, নিয়ম, Syntax ও উদাহরণ | C প্রোগ্রামিং

HSC 8মিনিট পড়া
C Programming If Statement: গঠন, নিয়ম, Syntax ও উদাহরণ | C প্রোগ্রামিং

C Programming Masterclass: Complete Guide to Decision Control Statements

বিষয়: C Programming-এ 'if Statement' এর বিস্তারিত আলোচনা, কন্ডিশনাল লজিক ও অনুশীলনী লেকচার সীট

১. ভূমিকা (Introduction to Decision Making)

সাধারণত C প্রোগ্রামিংয়ে কোড উপর থেকে নিচে একটার পর একটা (Sequential) এক্সিকিউট হয়। কিন্তু বাস্তবে অনেক সময় কোনো শর্তের (Condition) উপর ভিত্তি করে নির্দিষ্ট কিছু কোড রান করার বা বাদ দেওয়ার প্রয়োজন হয়। একে প্রোগ্রামিংয়ের ভাষায় Control Flow বা Decision Making বলা হয়।

C ভাষায় সিদ্ধান্ত গ্রহণের জন্য প্রধানত ৪ ধরনের structure ব্যবহার করা হয়:

১. Simple if Statement
২. if-else Statement
৩. Nested if-else Statement
৪. else-if Ladder Statement

📌 গুরুত্বপূর্ণ ধারণা

কন্ডিশন চেক করার পর তার ফলাফল সত্য (True) নাকি মিথ্যা (False) — এর উপর ভিত্তি করে প্রোগ্রাম কোন ব্লকে প্রবেশ করবে তা নির্ধারিত হয়।

C প্রোগ্রামিংয়ে যেকোনো অ-শূন্য (non-zero) মানকে TRUE এবং ০ (zero) মানকে FALSE হিসেবে বিবেচনা করা হয়।

২. শর্ত তৈরির অপারেটর (Operators for Conditions)

if Statement-এ কন্ডিশন তৈরি করতে প্রধানত Relational এবং Logical Operators ব্যবহার করা হয়।

ক) রিলেশনাল অপারেটর (Relational Operators)

• == (Equal to): দুটি মান সমান কি না চেক করে। (যেমন: a == b)
• != (Not equal to): দুটি মান অসম কি না চেক করে। (যেমন: a != b)
• > (Greater than): বামের মান বড় কি না চেক করে। (যেমন: a > b)
• < (Less than): বামের মান ছোট কি না চেক করে। (যেমন: a < b)
• >= (Greater than or equal to): বড় বা সমান কি না চেক করে। (যেমন: a >= b)
• <= (Less than or equal to): ছোট বা সমান কি না চেক করে। (যেমন: a <= b)

খ) লজিক্যাল অপারেটর (Logical Operators)

• && (Logical AND): একাধিক কন্ডিশনের সবগুলো TRUE হলে সামগ্রিক ফলাফল TRUE হয়।
• || (Logical OR): একাধিক কন্ডিশনের যেকোনো একটি TRUE হলে ফলাফল TRUE হয়।
• ! (Logical NOT): কন্ডিশনের মানকে উল্টে দেয় (TRUE কে FALSE, FALSE কে TRUE করে)।

৩. Simple if Statement

এটি decision making-এর সবচেয়ে সহজ রূপ। যদি প্রদানকৃত কন্ডিশনটি সত্য (True) হয়, তবেই if ব্লকের ভেতরের কোড এক্সিকিউট হবে। কন্ডিশন মিথ্যা (False) হলে if ব্লকটি স্কিপ বা এড়িয়ে যাওয়া হবে।

Syntax (গঠন):

if (condition) {

// Statement(s) to execute if condition is true

}

কোড: Simple if syntax

উদাহরণ ও ব্যাখ্যা:

#include <stdio.stdio.h>

int main() {

int age = 20;

if (age >= 18) {

printf("You are eligible to vote.\n");

}

printf("Program ended.\n");

return 0;

}

কোড: Simple if example

ব্যাখ্যা: এখানে age >= 18 শর্তটি সত্য (২০ >= ১৮)। তাই 'You are eligible to vote.' মেসেজটি প্রিন্ট হবে।

৪. if-else Statement

যখন শর্ত সত্য হলে এক সেট কাজ এবং মিথ্যা হলে অন্য সেট কাজ করতে হয়, তখন if-else ব্যবহার করা হয়।

Syntax (গঠন):

if (condition) {

// Code to execute if condition is true

} else {

// Code to execute if condition is false

}

কোড: if-else syntax

উদাহরণ: জোড় (Even) না বিজোড় (Odd) সংখ্যা নির্ণয়

#include <stdio.h>

int main() {

int num;

printf("Enter an integer: ");

scanf("%d", &num);

if (num % 2 == 0) {

printf("%d is an Even number.\n", num);

} else {

printf("%d is an Odd number.\n", num);

}

return 0;

}

কোড: Even or Odd program

৫. else-if Ladder (একাধিক শর্ত পরীক্ষা)

যখন একের অধিক শর্ত ধারাবাহিকভাবে চেক করার প্রয়োজন হয়, তখন else-if ladder ব্যবহার করা হয়। প্রথম যে শর্তটি সত্য হবে, সেই ব্লকের কোড এক্সিকিউট হয়ে ল্যাডার থেকে বের হয়ে আসবে।

Syntax (গঠন):

if (condition1) {

// Block 1

} else if (condition2) {

// Block 2

} else if (condition3) {

// Block 3

} else {

// Default block if all conditions are false

}

কোড: else-if ladder syntax

উদাহরণ: জিপিএ (Grade) গ্রেডিং সিস্টেম

#include <stdio.h>

int main() {

int marks;

printf("Enter your marks (0-100): ");

scanf("%d", &marks);

if (marks >= 80 && marks <= 100) {

printf("Grade: A+\n");

} else if (marks >= 70) {

printf("Grade: A\n");

} else if (marks >= 60) {

printf("Grade: A-\n");

} else if (marks >= 50) {

printf("Grade: B\n");

} else if (marks >= 40) {

printf("Grade: C\n");

} else if (marks >= 33) {

printf("Grade: D\n");

} else if (marks >= 0 && marks < 33) {

printf("Grade: F (Fail)\n");

} else {

printf("Invalid marks entered!\n");

}

return 0;

}

কোড: Grading System Program

৬. Nested if-else Statement (নেস্টেড ইফ)

একটি if বা else ব্লকের ভেতরে যদি অন্য একটি if বা else-if ব্লক থাকে, তবে তাকে Nested if-else বলা হয়। জটিল সিদ্ধান্ত গ্রহণে এর ভূমিকা অত্যন্ত গুরুত্বপূর্ণ।

উদাহরণ: লিফ ইয়ার (Leap Year) নির্ণয়

#include <stdio.h>

int main() {

int year;

printf("Enter a year: ");

scanf("%d", &year);

if (year % 4 == 0) {

if (year % 100 == 0) {

if (year % 400 == 0) {

printf("%d is a Leap Year.\n", year);

} else {

printf("%d is NOT a Leap Year.\n", year);

}

} else {

printf("%d is a Leap Year.\n", year);

}

} else {

printf("%d is NOT a Leap Year.\n", year);

}

return 0;

}

কোড: Leap Year check with nested if

৭. সাধারণ ভুল ও সতর্কবার্তা (Common Pitfalls & Best Practices)

📌 প্রোগ্রামিংয়ের কমন মিস্টেকসমূহ

১. Assign (=) বনাম Equality (==): if (x = 5) লিখলে x এর মান 5 হয়ে যাবে এবং এটি সর্বদা TRUE হবে! সঠিক হলো: if (x == 5)।

২. Semicolon (;) এর ভুল প্রয়োগ: if (condition); - এভাবে শেষে সেমিকোলন দিলে if ব্লক তখনই শেষ হয়ে যায় এবং নিচের ব্লকটি সবসময় রান করে।

৩. Scope & Curly Braces {}: if ব্লকে ১টি মাত্র স্টেটমেন্ট থাকলে curly brace না দিলেও চলে, তবে একাধিক স্টেটমেন্ট থাকলে অবশ্যই {} দিতে হবে। সর্বদা {} ব্যবহার করা ভালো অভ্যাস।

৪. Floating-point comparison: ফ্লোট সংখ্যার হুবহু সমতা চেক (e.g. if(f == 0.7)) এড়িয়ে চলা ভালো, কারণ কম্পিউটার মেমরিতে ফ্র্যাকশন সূক্ষ্মভাবে সংরক্ষণ নাও হতে পারে।

৮. বাস্তবমুখী প্র্যাকটিস প্রোগ্রাম (Practice Programs)

প্রোগ্রাম ১: তিনটি সংখ্যার মধ্যে বৃহত্তম সংখ্যা নির্ণয়

#include <stdio.h>

int main() {

double n1, n2, n3;

printf("Enter three numbers: ");

scanf("%lf %lf %lf", &n1, &n2, &n3);

if (n1 >= n2 && n1 >= n3) {

printf("Largest number = %.2lf\n", n1);

} else if (n2 >= n1 && n2 >= n3) {

printf("Largest number = %.2lf\n", n2);

} else {

printf("Largest number = %.2lf\n", n3);

}

return 0;

}

কোড: Largest among three numbers

প্রোগ্রাম ২: সাধারণ ক্যালকুলেটর (Simple Calculator using if-else)

#include <stdio.h>

int main() {

char op;

double num1, num2, result;

printf("Enter an operator (+, -, *, /): ");

scanf(" %c", &op);

printf("Enter two operands: ");

scanf("%lf %lf", &num1, &num2);

if (op == '+') {

result = num1 + num2;

printf("%.2lf + %.2lf = %.2lf\n", num1, num2, result);

} else if (op == '-') {

result = num1 - num2;

printf("%.2lf - %.2lf = %.2lf\n", num1, num2, result);

} else if (op == '*') {

result = num1 * num2;

printf("%.2lf * %.2lf = %.2lf\n", num1, num2, result);

} else if (op == '/') {

if (num2 != 0) {

result = num1 / num2;

printf("%.2lf / %.2lf = %.2lf\n", num1, num2, result);

} else {

printf("Error! Division by zero is not allowed.\n");

}

} else {

printf("Invalid operator!\n");

}

return 0;

}

কোড: Simple Calculator

প্রোগ্রাম ৩: ছোট হাতের / বড় হাতের বর্ণ (Vowel/Consonant) পরীক্ষা

#include <stdio.h>

int main() {

char ch;

printf("Enter an alphabet: ");

scanf(" %c", &ch);

if ((ch >= 'a' && ch <= 'z') || (ch >= 'A' && ch <= 'Z')) {

if (ch == 'a' || ch == 'e' || ch == 'i' || ch == 'o' || ch == 'u' ||

ch == 'A' || ch == 'E' || ch == 'I' || ch == 'O' || ch == 'U') {

printf("%c is a Vowel.\n", ch);

} else {

printf("%c is a Consonant.\n", ch);

}

} else {

printf("%c is not an Alphabet.\n", ch);

}

return 0;

}

কোড: Vowel and Consonant Check

৯. অনুশীলনী ও নিজেকে যাচাই (Exercise Problems)

নিজের মেধা যাচাই ও দক্ষতা বৃদ্ধির জন্য নিচের সমস্যাগুলো নিজে সমাধান করার চেষ্টা করুন:

১. এমন একটি C প্রোগ্রাম লেখো যা একটি ইনপুটকৃত সংখ্যা ধনাত্মক (Positive), ঋণাত্মক (Negative) নাকি শূন্য (Zero) তা নির্ধারণ করবে।
২. এমন একটি প্রোগ্রাম লেখো যা ইউজার থেকে একটি ক্যারেক্টার ইনপুট নিয়ে এটি Alphabet, Digit নাকি Special Character তা চেক করবে।
৩. একটি ত্রিভুজের ৩টি কোণ ইনপুট নিয়ে ত্রিভুজটি গঠন করা সম্ভব কি না (তিন কোণের সমষ্টি ১৮০ ডিগ্রি) তা পরীক্ষা করো।
৪. কোনো বিদ্যুৎ বিল হিসাবের প্রোগ্রাম লেখো যেখানে మొదటి ১০০ ইউনিটের প্রতি ইউনিট ৫ টাকা, পরবর্তী ২০০ ইউনিট ৮ টাকা এবং এর বেশি হলে ১০ টাকা চার্জ করা হবে।