Nested if-else কি?
নাম শুনে কঠিন মনে হলেও আসলে এটা তেমন কিছু না। একটা if কিংবা else if অথবা else এর ভিতরে আরেকটা if কিংবা else if অথবা else বসিয়ে দিলেই তা নেস্টেড হয়ে যায়।
নিচের প্রোগ্রামটি দেখোঃ
#include <stdio.h>
int main()
{
/* ৩ টি ইন্টজার ভেরিয়েবল ডেক্লিয়ার */
int num1, num2, num3;
/* ইউজারের কাছ থেকে ইনপুট গ্রহণ */
printf("Enter three numbers: ");
scanf("%d%d%d", &num1, &num2, &num3);
if(num1 > num2)
{
if(num1 > num3)
{
/* যদি num1>num2 এবং num1>num3 হয় */
printf("Num1 is max.");
}
else
{
/* যদি num1>num2 হয় কিন্তু num1<num3 হয় */
printf("Num3 is max.");
}
}
else
{
if(num2 > num3)
{
/* যদি num1<num2 হয় এবং num2>num3 */
printf("Num2 is max.");
}
else
{
/* যদি num1<num2 এবং num2<num3 */
printf("Num3 is max.");
}
}
return 0;
}
উপরের প্রোগ্রামে scanf পর্যন্ত নিশ্চয় বোঝতে পারছো। ধরে নেই ইউজার num1 = 5 num3 = 15 num2 = 10 ইনপুট দিয়েছেন।- প্রথমে কম্পাইলার বাইরের if কন্ডিশন (শর্ত) -> if(num1 > num2) চেক করবে। যেহেতু num1=5 এবং num2=10,সুতরাং num1>num2 এই শর্তটি মিথ্যা।
- তাই কম্পাইলার এই if এ কোন কাজ করবেনা সম্পূর্ণ if ব্লকের পরে বাইরের else এ চলে যাবে।
- এখন কম্পাইলার বাইরের else কন্ডিশন (শর্ত) এ আসবে। তার পর else এর ভিতরের
if(num2 > num3)
চেক করবে। যেহেতু num2 = 10 এবং num3 = 15,সুতরাং num2 > num3 এই শর্তটি ও মিথ্যা হবে। - সুতরাং বাইরের else এর ভিতরের if মিথ্যা হবে, এখন কম্পাইলার ভিতরের else এ চলে যাবে।
- এই else এ আসার পর দেখবে শুধু printf("Num3 is max."); এই স্টেটমেন্ট দেওয়া আছে। তাই আউটপুট আসবে Num3 is max.
- কম্পাইলার return 0; তে চলে যাবে , এবং প্রোগ্রাম শেষ হয়ে যাবে।
0 comments:
Post a Comment