সি ইফ...এলস এবং নেস্টেড ইফ...এলস স্টেটমেন্ট | C Programming if...else and nested if...else Statement
সি if...else স্টেটমেন্ট
কন্ডিশন True হলে কিছু কোড এবং False হলে অন্য কিছু কোড সম্পাদন(execution) এর জন্য সি if...else
স্টেটমেন্ট ব্যবহৃত হয়।
if...else সিনট্যাক্স
if (testExpression) {
// True হলে এই কোড এক্সিকিউট হবে।
}
else {
// False হলে এই কোড এক্সিকিউট হবে।
}
টেস্ট এক্সপ্রেশন True হলে if
স্টেটমেন্টের কোড ব্লক এক্সিকিউট হবে এবং else
স্টেটমেন্টের কোড ব্লককে এড়িয়ে যাবে।
টেস্ট এক্সপ্রেশন false হলে else
স্টেটমেন্টের কোড ব্লক সম্পাদিত হবে এবং if
স্টেটমেন্টের কোড ব্লককে এড়িয়ে যাবে।
if...else স্টেটমেন্টের ফ্লোচার্ট
উদাহরন ১: সি if...else স্টেটমেন্ট
#include<stdio.h>
#include<conio.h>
int main()
{
int time=16;
clrscr();
if(time<12)
{
printf("Good morning."); // সময় ১২ টার কম হলে প্রিন্ট হবে।
}
else
{
printf("Good after noon");// সময় ১২ টার বেশি হলে প্রিন্ট হবে।
}
getch();
}
আউটপুট
Good after noon.
উদাহরন ২: সি if...else স্টেটমেন্ট
//ইউজার কর্তৃক ইনপুট দেওয়া ইন্টেজার সংখ্যা জোড় না বিজোড় চেক করার জন্য প্রোগ্রাম।
#include <stdio.h>
int main()
{
int testNumber;
printf("Enter an integer: ");
scanf("%d",&testNumber);
// ভাগশেষ শূন্য(0) হলে True হবে
if(testNumber%2 == 0 ){
printf("%d is an even integer.",testNumber);
}
else{
printf("%d is an odd integer.",testNumber);
}
return 0;
}
আউটপুট
Enter an integer: 9 9 is an odd integer.
যখন ইউজার 9 প্রবেশ করায় তখন টেস্ট এক্সপ্রেশন (testNumber%2 == 0 )
এর ভ্যালু false হয়। সুতরাং else
স্টেটমেন্টের মধ্যে অবস্থিত printf("%d is an odd integer");
স্টেটমেন্ট এক্সিকিউশন হয় এবং if
এর মধ্যে অবস্থিত স্টেটমেন্টকে এড়িয়ে যায়।
নেস্টেট if...else স্টেটমেন্ট
কন্ডিশন True/False যাই হোক না কেন আমরা কোড এক্সিকিউট করতে চাই অর্থাৎ সিদ্ধান্ত গ্রহণ করতে চাই সেক্ষেত্রে if...else
স্টেটমেন্ট ব্যবহৃত হয়। কিন্তু মাঝে মাঝে সিদ্ধান্ত গ্রহণ দুই এর অধিক কন্ডিশনের উপর নির্ভর করতে পারে।
দুই এর অধিক এক্সপ্রেশনকে টেস্ট করে কোড এক্সিকিউট করার জন্য নেস্টেড if...else স্টেটমেন্ট ব্যবহৃত হয়।
নেস্টেট if...else সিনট্যাক্স
if (testExpression1)
{
//testExpression1 True হলে এই কোড এক্সিকিউট হবে।
}
else if(testExpression2)
{
// testExpression1 false এবং testExpression2 True হলে এই কোড ব্লক এক্সিকিউট হবে।
}
else if (testExpression3)
{
//testExpression1 ও testExpression2 false এবং testExpression3 True হলে এই কোড ব্লক এক্সিকিউট হবে।
}
.
.
else
{
// সকল testExpression false হলে এই কোড ব্লক এক্সিকিউট হবে।
}
উদাহরন ১: সি নেস্টেড if...else স্টেটমেন্ট
#include<stdio.h>
#include<conio.h>
int main(){
int number=0;
clrscr();
printf("enter a number:");
scanf("%d",&number);
if(number==10){
printf("number is equals to 10");
}
else if(number==50){
printf("number is equal to 20");
}
else if(number==100){
printf("number is equal to 30");
}
else{
printf("number is not equal to 10, 20 or 30");
}
getch();
}
আউটপুট
enter a number:5 number is not equal to 10, 20 or 30
enter a number:100 number is equal to 30
উদাহরন ২: সি নেস্টেড if...else স্টেটমেন্ট
// =, > অথবা < ব্যবহার করে দুটি ইন্টেজারের মধ্য সম্পর্ক তৈরি
#include <stdio.h>
int main()
{
int testNumber1,testNumber2;
printf("Enter two integers: ");
scanf("%d %d", &testNumber1, &testNumber2);
//দুটি ইন্টেজার সমান কিনা চেক করে।
if(testNumber1 ==testNumber2)
{
printf("Result: %d = %d",testNumber1, testNumber2);
}
//testNumber2 থেকে testNumber1 বড় কিনা চেক করে
else if (testNumber1 >testNumber2)
{
printf("Result: %d > %d",testNumber1, testNumber2);
}
// যদি উভয় এক্সপ্রেশন false হয়।
else
{
printf("Result: %d < %d",testNumber1, testNumber2);
}
return 0;
}
আউটপুট
Enter two integers: 15 225 Result: 15 < 25
অনেক ভ্যালুর বিপরীতে সিদ্ধান্ত গ্রহণের জন্য আপনি সুইস(switch) স্টেটমেন্টও ব্যবহার করতে পারেন।