মডিউল ২: অপারেটরস, কন্ডিশনাল স্টেটমেন্টস
মডিউল ২-০: সূচনা
আচ্ছা এটা না হয়ে যদি সেটা হয় তাহলে কি হবে? এই যদির খেলা হবে আজকে!! তবে খেলা অবশ্যই কোডিং এর মাঠেই হবে। অর্থাৎ আজকে আমরা হরেকরকম শর্ত আরোপ করবো। সো উপরের কিছু ইনফর্মাল কথাবার্তা থেকে অনেকেই বুঝে গেছো আজকে আমরা কি শিখতে যাচ্ছি। হ্যাঁ, আজকে আমরা অপারেটর এবং কন্ডিশনাল স্টেটমেন্ট এর সাথে পরিচিত হবো। সাথে ছোট ছোট কিছু কোডিং এক্সাম্পলও প্র্যাক্টিস করানো হবে।
এই মডিউলে আমরা কি কি শিখবোঃ
- এরিথমেটিক অপারেটরস সম্পর্কে জানবো
- রিলেশনাল অপারেটরস সম্পর্কে জানবো
- লজিকাল অপারেটরস সম্পর্কে জানবো
- কন্ডিশনালস সম্পর্কে জানবো
- if else, nested if else সম্পর্কে জানবো
মডিউল ২-১ঃ এরিথমেটিক অপারেটরস
সি প্রোগ্রামিং এর এরিথমেটিক অপারেটরস গুলো হলোঃ

এই অপারেটরগুলোর সাথে আমরা অলরেডি পরিচিত। ডেইলি লাইফে +, -, *, / ব্যবহার করি। % (মডুলাস) ভাগশেষ বের করতে ব্যবহৃত হয় এবং প্রোগ্রামিংয়ে খুবই দরকারি।
মডুলাস অপারেটর (%)
উদাহরণ: 16 % 3 এর ফল 1 (কারণ 16 = 3×5 + 1)। একইভাবে 18 % 4 এর ফল 2।
এবার দেখি কোডে কিভাবে লিখব:
#include <stdio.h>
int main()
{
int a = 10, b = 3;
int mod = a % b;
printf("%d", mod);
return 0;
}সেইমভাবে এখন আপনি বাকি অপারেটরগুলোর জন্যও কোড লিখে ফেলতে পারবেন।
মডিউল ২-২ঃ Mod অপারেটর
Modular operator বা Mod operator (%) এর মাধ্যমে আমরা দুটি সংখ্যা একটি অপরকে দ্বারা ভাগ করলে যে ভাগশেষ অবশিষ্ট থাকে তা বের করতে পারি।
ধরুন, ১২ কে ৫ দ্বারা ভাগ করলাম:

এক্ষেত্রে ভাগশেষ পাওয়া যায় ২। প্রোগ্রামিংয়ে এই ভাগশেষ বের করার জন্যই % ব্যবহার করা হয়।
কোড:
int main()
{
int mod = 12 % 5;
printf("%d", mod);
}
// Output : 2মডিউল ২-৩: রিলেশনাল অপারেটরস
সি প্রোগ্রামিং এর রিলেশনাল অপারেটরস গুলো হলোঃ

রিলেশনাল অপারেটর সবসময় সত্য (true) অথবা মিথ্যা (false) রিটার্ন করে। উদাহরণ:
5 > 3→ সত্য10 < 3→ মিথ্যা3 <= 7→ সত্য6 >= 6→ সত্য7 == 8→ মিথ্যা,7 != 8→ সত্য
রিলেশনাল অপারেটরগুলোর মধ্যে >, <, >=, <= পরিচিত। নতুন দুটি হলো == (Equal To) এবং != (Not Equal To)।
==ব্যবহার করি দুই পাশের মান সমান কিনা চেক করতে; সমান হলে সত্য।!=ব্যবহার করি দুই পাশের মান সমান না হলে সত্য রিটার্ন করতে; সমান হলে মিথ্যা।
মডিউল ২-৪,২-৫ঃ লজিকাল অপারেটরস
সি প্রোগ্রামিং এ তিনটি লজিকাল অপারেটর আছে:
&&(লজিকাল এন্ড)||(লজিকাল অর)!(লজিকাল নট)
লজিকাল অপারেটর ২টি কন্ডিশনের মাঝে বসে (নট ব্যতীত)। কন্ডিশনকে আপাতত রিলেশনাল অপারেটরের আউটপুট (সত্য/মিথ্যা) ভাবতে পারেন। লজিকাল অপারেটরের আউটপুটও সত্য বা মিথ্যা।
&& (লজিকাল এন্ড)
শুধু তখনই সত্য, যখন দুটি কন্ডিশনই সত্য।
- সত্য && সত্য = সত্য
- সত্য && মিথ্যা = মিথ্যা
- মিথ্যা && সত্য = মিথ্যা
- মিথ্যা && মিথ্যা = মিথ্যা
উদাহরণ:
4 < 7 && 5 > 2→ সত্য5 != 6 && 3 >= 5→ মিথ্যা
|| (লজিকাল অর)
যেকোনো একটি কন্ডিশন সত্য হলেই সত্য।
- সত্য || সত্য = সত্য
- সত্য || মিথ্যা = সত্য
- মিথ্যা || সত্য = সত্য
- মিথ্যা || মিথ্যা = মিথ্যা
উদাহরণ:
4 < 7 || 5 > 2→ সত্য5 != 6 || 3 >= 5→ সত্য
! (লজিকাল নট)
এটি একক কন্ডিশনের আগে বসে এবং ফল উল্টে দেয়।
!সত্য= মিথ্যা!মিথ্যা= সত্য
নট সাধারণত কোনো কন্ডিশনকে উল্টাতে ব্যবহার করি। সি-তে আরও বিভিন্ন অপারেটর আছে; সেগুলো সামনে শিখবেন।
মডিউল ২-৬, ২-৭ঃ ইফ এলস
দৈনন্দিন জীবনে আমরা শর্তযুক্ত সিদ্ধান্ত নেই, যেমন “বৃষ্টি না হলে স্কুলে যাব।” প্রোগ্রামিংয়েও এমন সিদ্ধান্তের জন্য কন্ডিশনাল স্টেটমেন্ট লাগে।
if-else এর সিনট্যাক্স
if (condition) {
// শর্ত সত্য হলে এই ব্লক চলবে
} else {
// শর্ত মিথ্যা হলে এই ব্লক চলবে
}মডিউল ২-৮, ২-৯ঃ ইফ এলস লেডার
কখনো শুধু if এবং else দিয়ে সব কেস কাভার হয় না। তখন else if ধাপে ধাপে ব্যবহার করি — এটিই if-else ladder। একটি ladder শুরু হয় if দিয়ে, মাঝে যত প্রয়োজন else if, আর শেষে ঐচ্ছিক else।
উদাহরণ ধারণা: সপ্তাহের দিনভেদে ভিন্ন খাবার খাওয়া — একাধিক কন্ডিশন, একটি সত্য হলেই সংশ্লিষ্ট ব্লক চলবে, বাকিগুলো স্কিপ হবে।
আরেক উদাহরণ: টাকার পরিমাণ অনুযায়ী কী খাবো —
#include <stdio.h>
int main()
{
int tk;
scanf("%d", &tk);
if (tk >= 100) {
printf("Burger khabo");
} else if (tk >= 50) {
printf("Fuchka khabo");
} else if (tk >= 20) {
printf("Ice cream khabo");
} else {
printf("Kichui khabo na");
}
return 0;
}মডিউল ২-১০, ২-১১,২-১২ঃ নেস্টেড ইফ এলস
কখনো কন্ডিশনের ভেতরে আবার কন্ডিশন চেক করতে হয় — এটিই Nested if-else। প্রথম শর্ত সত্য হলে ভিতরের আরেক/একাধিক শর্ত মূল্যায়ন করা হয়।
উদাহরণ ধারণা: “শুক্রবার হলে সকালে পরোটা, দুপুরে বিরানি, রাতে তেহারি; নইলে ভাত।” প্রথমে “শুক্রবার?” চেক, সত্য হলে ভিতরে “সকাল/দুপুর/রাত?” চেক।
আরেক উদাহরণ: আমার কাছে ৫০০০ টাকা থাকলে কক্সবাজার যাব; সেখানে গিয়ে যদি ১০,০০০ থাকে তবে সেইন্ট মার্টিনও যাব, না থাকলে ফেরত; আর ৫০০০-ও না থাকলে কোথাও নয়:
#include <stdio.h>
int main()
{
int tk;
scanf("%d", &tk);
if (tk >= 5000) { // ৫০০০ থাকলে
printf("Cox's Bazar jabo\n");
if (tk >= 10000) { // ভিতরে আরেক শর্ত
printf("Saint Martin jabo\n");
} else {
printf("Ferot chole jabo\n");
}
} else { // ৫০০০-ও নেই
printf("Kothao jabo na\n");
}
return 0;
}উদাহরণ ধারণা: “আমার কাছে ১০০০ টাকা থাকলে আমি শার্ট কিনব; নাহলে কিনব না।” এখানে tk == 1000 একটি রিলেশনাল চেক।
জোড়/বিজোড় নির্ণয় (if-else উদাহরণ)
#include <stdio.h>
int main()
{
int n;
scanf("%d", &n); // সংখ্যাটি ইনপুট নিচ্ছি
if (n % 2 == 0) { // ২ দিয়ে ভাগ গেলে ভাগশেষ ০ -> জোড়
printf("This a even number.");
} else {
printf("This is a odd number."); // ভাগ না গেলে -> বিজোড়
}
}