if statement (ইফ স্টেটমেন্ট)
Q1. if statement (ইফ স্টেটমেন্ট) এর সিনট্যাক্স ব্যাখ্যা কর।
উত্তরঃ সাধারণত কোনো সিন্ধান্তমূলক কাজ করার উপযোগী প্রোগ্রাম তৈরীর জন্য if statement ব্যবহার করা হয়।
এই if statement ব্যবহারের নিয়ম হল,
if (condition) statement;
তবে কোড ভালভাবে পড়ার সুবিধার্থে if statement কে নিচের মত করে লিখা যায়,
if (condition)
statement;
অবশ্যই লক্ষ্যনীয় যে, if(condition) এর পরে কোন প্রকার সেমিকোলন (;) হবে না।
ব্যাখ্যাঃ
(১) বন্ধনী ‘()’ এর মধ্যে বিদ্যমান condition টি-
(a) সত্য হলে if (conditon) এর পরে বিদ্যমান statement টি কার্যকর হবে।
(b) সত্য না হলে অর্থাৎ মিথ্যা হলে if (conditon) এর পরে বিদ্যমান statement টি কার্যকর হবে না।
(২) এখানে condition হিসেবে সাধারণত যে কোনো relational condition যেমন (a>=b) বা logical condition যেমন
(a>b || a<c) ব্যবহার করা হয় এবং এই conditional expression কে if এর পর বন্ধনীর ‘()’ মধ্যে লিখতে হয়। যেমন,
if (a>=b)
printf(“the first number is greater than the second number”);
(৩) তবে স্টেটমেন্ট অংশে compound statement নিয়ে কাজ করতে হলে if statement এর গঠন নিচের মত হবে,
if (condition)
{
statement_1;
statement_2;
….
statement_n;
}
অর্থাৎ এক্ষেত্রে একাধিক statement কে বন্ধনীর ‘{}’ মধ্যে লিখতে হবে এবং বন্ধনীর শেষে কোনো সেমিকোলন হবেনা।
যেমন-
if (a>b)
{
printf(“a is greater than b”);
printf(“the first number is greater than the second number”);
}
এখানে বন্ধনী ‘()’ এর মধ্যে বিদ্যমান condition টি-
(a) সত্য হলে if (conditon) এর পরে বিদ্যমান ‘{}’ যুক্ত statements গুলো কার্যকর হবে।
(b) সত্য না হলে অর্থাৎ মিথ্যা হলে if (conditon) এর পরে বিদ্যমান ‘{}’ যুক্ত statements গুলোর কোনোটিই কার্যকর হবে না।
(৪) তবে if (condition) এর পরে একটি স্টেটমেন্ট (simple statement) কিংবা একাধিক স্টেটমেন্ট (compound statement), যে ধরণের ই হোক না কেন, statement অংশ সবসময় ‘{}’ বন্ধনীর মধ্যে লেখা ভালো।
Q2. নিচের প্রোগ্রামটি আউটপুট দেখাও এবং ব্যাখ্যা কর।
#include<stdio.h> #include<conio.h> int main() { int n; printf("Enter any integer number: \n"); scanf("%d", &n); if(n>0) printf("Your number is positive. \n"); printf("Thank You"); }
ব্যাখ্যাঃ
(১) int n; এর মাধ্যমে n নামের integer (পূর্ণসংখ্যা) টাইপের একটি চলক ঘোষণা করা হয়েছে।
(২) printf(“Enter any integer number: \n”); স্টেটমেন্টটি কার্যকর হবে ফলে আউটপুটে Enter any integer number: লেখাটি প্রদর্শিত হবে এবং কার্সর নিচের লাইনে প্রথম ঘরে চলে যাবে।
(৩) scanf(“%d”, &n); স্টেটমেন্টটি কার্যকর হবে ফলে কম্পিউটার ইউজারের কাছ থেকে একটি ইনটিজার টাইপের ডেটা গ্রহণের জন্য অপেক্ষা করবে। ইউজার যে সংখ্যাটি টাইপ করে Enter প্রেস করবে সেই সংখ্যাটি n এর মেমোরি এড্রেসে জমা হবে।
(৪) if (n>0) এখানে if ফাংশনের ‘()’ বন্ধনীর ভিতরে একটি কন্ডিশন (n>0) আছে। অর্থাৎ if(n>0) এই স্টেটমেন্টের কারণে কম্পিউটার নিজেকে একটি প্রশ্ন করবে। প্রশ্নটি হল: n এর মান কী 0 অপেক্ষা বড়? কম্পিউটারের সিপিইউ এর গাণিতিক যুক্তি ইউনিট থেকে উত্তরটি আসবে। উত্তর শুধুমাত্র সত্য বা মিথ্যা আসবে। অর্থাৎ n এর মান 0 অপেক্ষা বড় হলে উত্তর হবে সত্য। অন্যথায় উত্তর হবে মিথ্যা।
(৫) উত্তর সত্য হলে- if সংশ্লিষ্ট প্রথম printf() ফাংশনটি কার্যকর হবে।
(৬) উত্তর মিথ্যা হলে if সংশ্লিষ্ট প্রথম printf() ফাংশনটি কার্যকর হবে না।
(৭) উল্লেখ্য যে- if এর সাথে দ্বিতীয় printf() এর কোনো সম্পর্ক নেই। কন্ডিশন সত্য হলেও দ্বিতীয় printf() টি কার্যকর হবে এবং মিথ্যা হলেও কার্যকর হবে।
(৮) ধরা যাক, ইউজার কী-বোর্ড হতে 10 ইনপুট দিল। ফলে আউটপুটে প্রথম printf() সহ দ্বিতীয় printf() কার্যকর হবে। এবং আউটপুট নিম্নরুপ হবে।
আউটপুটঃ
Enter any integer number:
10
Your number is positive.
Thank you.
(৯) আবার ধরা যাক, ইউজার কী-বোর্ড হতে -10 ইনপুট দিল। ফলে আউটপুটে প্রথম printf() কার্যকর হবে না। কিন্তু দ্বিতীয় printf() কার্যকর হবে। ফলে আউটপুট নিম্নরুপ হবে।
আউটপুটঃ
Enter any integer number:
-10
Thank you.
Leave a Reply