আমরা নেস্টেড ইফ এলস ব্যবহার করে ৩ টি সংখ্যা থেকে বড় সংখ্যা নির্ণয় করেছিলাম। program 3.1 এ।
বোঝার সুবিধার্তে আমি আগের প্রোগ্রামটি আবার হুবহু তুলে ধরছি ।
#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;
}
এই প্রগ্রামটি আমরা && অপারেটর ব্যবহার করেও করতে পারি।#include<stdio.h>
int main()
{
int num1,num2,num3;
scanf("%d %d %d",&num1,&num2,&num3);
if(num1>num2 && num1>num3)
{
printf("Num1 is max");
}
else if(num2>num1 && num2>num3)
{
printf("Num2 is max");
}
else
{
printf("Num3 is max");
}
return 0;
}
উপরের দুইটা প্রোগ্রামের কাজ একই। প্রথম প্রোগ্রামে (3.1) এ আমরা নেস্টেড কন্ডিশন ব্যবহার করেছি। কিন্তু প্রোগ্রাম (3.2) তে আমরা && (অ্যান্ড অপারেটর) ব্যবহার করে দুটি শর্ত একসাথে জোড়ে দিয়েছি।
&& এর পুর্বের এবং পরের দুইটি শর্ত সত্য হলেই তার পরের { } এর ভিতরের কাজ করবে। কোন একটি শর্ত মিথ্যা হলেই কম্পাইলার পরবর্তী ধাপে চলে যাবে।
এবার দেখে নেই কিভাবে উপরের প্রোগ্রামটি (3.2) কাজ করছে।- মনেকরি, num1 = 10, num2 = 20, num3 = 15
- কম্পাইলার
if(num1>num2 && num1>num3) এ আসার পর দেখবে num1>num2 এই অংশটা মিথ্যা num1>num3 এই অংশটাও মিথ্যা তাই এখানে কোন কাজ করবে না। else if এ চলে যাবে।
- else if এ আসার পর
(num2>num1 && num2>num3) এই কন্ডি↕শন চেক করবে। এবার দেখবে num2>num1 এই অংশ সত্য আবার num2>num3 এই অংশ ও সত্য। তাই { } এর ভিতরের কাজ করবে।
এবার আরেকটি প্রোগ্রাম দেখিঃ
#include<stdio.h>
int main()
{
int a = 5,b = 10,c = 15;
if(b>a && b>c)
{
printf("b is max");
}
else if(a>b && a>c)
{
printf("a is max");
}
else
{
printf("c is max");
}
return 0;
}
এখন তুমি বলো উপরের প্রোগ্রামের আউটপুট কী হবে?- if(b>a && b>c) এই লাইনে আসার পর কম্পাইলার দেখবে b>a কন্ডিশনের এই অংশটি সত্য। কিন্ত্য && এর পর b>c এই অংশটি মিথ্যা কারণ 10 তো 15 এর চেয়ে বড় নয়। তাই একটি মিথ্যা হওয়ার কারণে কম্পাইলার এখানে কোন কাজ করবে না। && অপারেটরের উভয় পাশের শর্ত সত্য হলেই শুধুমাত্র কমান্ড গ্রহণ করবে।
- এবার কম্পাইলার else if এ চলে আসবে দেখবে , a>b শর্তটি মিথ্যা a>c শর্তটিও মিথ্যা কম্পাইলার এবার ও এখানে কোন কাজ করবে না।
- else এ চলে আসবে এবং { } এর ভিতরের নির্দেশ মতো কাজ করবে।
এবার আমরা আরেকটা অপারেটর নিয়ে কাজ করবো। একে বলা হয় অর অপারেটর। ( ।। ) পাশাপাশি দুইটা লম্বা দাড়ি একসাথে দিলে যেমন হয় অনেকটা সেরকম। অর অপারেটর এর দুইপাশের যেকোন একটি শর্ত সত্য হলেই সেটি নির্দেশ অনুসরণ করে কাজ করে।
#include<stdio.h>
int main()
{
int a = 5,b = 10;
if(a==5 || b==5)
{
printf("This is 5\n");
}
else
{
printf("This is 10\n);
}
return 0;
}
উপরের প্রোগ্রামের আউটপুট কী হবে বলো তো?যেহেতু a==5 এই শর্তটি সত্য তাই || এর পর b==5 এই শর্ত মিথ্যা হওয়ার পরও আউটপুট আসবে
This is 5
এতক্ষণে নিশ্চয়ই অপারেটর , নেস্টেড ইফ এলস এবং ইফ এলস নিয়ে আর কোন শংশয় নেই।
তারপর ও কোন কিছু না বোঝলে কমেন্ট করবে।আগামী পর্বে থাকবে কিছু সহজ সমস্যা।
happy Coding ☺😎
0 comments:
Post a Comment