else…if statement (এলস…ইফ স্টেটমেন্ট)


Q1. else…if statement (এলস…ইফ স্টেটমেন্ট) এর সিনট্যাক্স ব্যাখ্যা কর।

ব্যাখ্যাঃ

(১) else…if স্টেটমেন্ট এর সাহয্যে দুইয়ের অধিক কন্ডিশন চেক করা যায়।

(২) condition1 টি সত্য হলে true_statement কার্যকর হবে এবং প্রোগ্রাম শেষ হবে।

(৩) condition1 টি মিথ্যা হলে else সংশ্লিষ্ট false_statement কার্যকর করার পূর্বে মধ্যবর্তী অন্যান্য else…if condition চেক করবে।

(৪) যদি মধ্যবর্তী অন্য কোনো condition সত্য হয় তবে সেই else…if সংশ্লিষ্ট block statement কার্যকর হবে এবং প্রোগ্রাম শেষ হবে।

(৫) যদি মধ্যবর্তী সবগুলো condition (condtion1 থেকে conditionN পর্যন্ত) মিথ্যা হয় তবেই কেবলমাত্র false_statement কার্যকর হবে।

Q2. নিচের প্রোগ্রামটির সঠিক আউটপুট কোনটি?

#include<stdio.h>
#include<conio.h>
int main()
{
 int n=50;
 if(n>=80)
  printf("Best");
 else if(n>=60)
  printf("Better");
 else if(n>=40)
  printf("Good");
 else
  printf("Bad ");		
}

নিচের কোনটি সঠিক?

(ক) Bad            (খ) Good         (গ) Better        (ঘ) Best

ব্যাখ্যাঃ

(১) int n=50; এর মাধ্যমে n নামের integer টাইপের একটি চলক ঘোষণা করা হয়েছে। এবং n এর মান 50 নির্ধারিত হবে।

(২) if(n>=80) এর মাধ্যমে কম্পাইলার একটি প্রশ্নের সম্মুখীন হবে। প্রশ্নটি হলঃ n কী 80 এর সমান অথবা বড়? বা 50 কী 80 এর সমান অথবা বড়? উত্তর মিথ্যা।

(৩) আমরা জানি যে if এর কন্ডিশন মিথ্যা হলে হলে else সংশ্লিষ্ট স্টেটমেন্ট অর্থাৎ False Statement কার্যকর হয়। কিন্তু এখানে else if থাকার কারণে তা হবে না। বরং দুইবার else if থাকার কারণে আরও সর্বোচ্চ দুইটি কন্ডিশন চেক করতে হবে।

(৪) else if(n>=60) এর মাধ্যমে কম্পাইলার যে প্রশ্নের সম্মুখীণ হবে তা হলঃ n কী 60 এর সমান অথবা বড়? বা 50 কী এর সমান অথবা বড়? উত্তর মিথ্যা হওয়ায় পরবর্তী else if কন্ডিশনে চলে যাবে।

(৫) else if(n>=40) এর মাধ্যমে কম্পাইলার যে প্রশ্নের সম্মুখীণ হবে তা হলঃ n কী এর সমান অথবা বড়? বা 50 কী 40 এর সমান অথবা বড়? উত্তর সত্য হওয়ায় এই else if(n>=40) সংশ্লিষ্ট স্টেটমেন্ট অর্থাৎ printf(“Good”); কার্যকর হবে। এবং আউটপুটে Good প্রদর্শিত হবে। প্রোগ্রাম শেষ হবে।

(৬) সঠিক উত্তরঃ খ

Q3. প্রশ্ন ‘Q6’ বর্ণিত প্রোগ্রামে যদি n=30 ধরা হয় তাহলে সঠিক আউটপুট কোনটি হবে?

(ক) Bad            (খ) Good         (গ) Better        (ঘ) Best

ব্যাখ্যাঃ  

(১) n=30 ধরা হলে if(n>=80) কন্ডিশন সত্য হবে না।

(২) if (n>=60) কন্ডিশন সত্য হবে না।

(৩) if (n>=40)  কন্ডিশন সত্য হবে না।

(৪) কোনো কন্ডিশন সত্য না হওয়ায় else সংশ্লিষ্ট printf(“Bad”); স্টেটমেন্ট কার্যকর হবে ফলে আউটপুটে Bad লেখাটি প্রদর্শিত হবে।

(৫) সঠিক উত্তর ‘ক’ হবে

Q4. else…if ব্যবহার করে গ্রেড (A+, A, A-, A, B+, B, C, D, F) নির্ণয়ের প্রোগ্রাম লিখ এবং ব্যাখ্যা কর।

#include<stdio.h>
#include<conio.h>
int main()
{ 
 float n; 
 printf("Enter Your Score: \n ");
 scanf("%f", &n); 
 if(n>=80)
  printf("Grade: A+");
 else if(n>=70)
  printf("Grade: A");
 else if(n>=65)
  printf("Grade: A-");
 else if(n>=60)
  printf("Grade: B+");
 else if(n>=50)
  printf("Grade: B");
 else if(n>=40)
  printf("Grade: C");
 else if(n>=33)
  printf("Grade: D");
 else 
  printf("Grade: F");	
}

ব্যাখ্যা:

(১) float n; এর মাধ্যমে n নামের float (ভগ্নাংশ অথবা পূর্ণসংখ্যা) টাইপের একটি চলক ঘোষণা করা হয়েছে।

(২) একাধিক গ্রেড নির্ণয়ের জন একাধিক কন্ডিশন চেক করতে হবে বিধায় একাধিক else…if(condition) স্টেটমেন্ট ব্যবহার করা হয়েছে।

(৩) প্রদত্ত স্কোর 80 এর সমান অথবা বড় হলে if(n>=80) কন্ডিশন সত্য হবে ফলে printf(“A+”); স্টেটমেন্ট কার্যকর হবে ফলে আউটপুটে A+ গ্রেড প্রদর্শিত হবে। এবং অন্য কোনো else…if(condition) চেক করার প্রয়োজন হবে না ফলে প্রোগ্রাম শেষ হবে।

(৪) প্রদত্ত স্কোর 70 থেকে 79 পর্যন্ত হলে  if(n>=80) কন্ডিশন মিথ্যা হবে কিন্তু else if(n>=70) কন্ডিশন সত্য ফলে printf(“A”); স্টেটমেন্ট কার্যকর হবে ফলে আউটপুটে A গ্রেড প্রদর্শিত হবে। এবং else if(n>=70) এর নিচের অন্য কোনো else…if(condition) চেক করার প্রয়োজন হবে না ফলে প্রোগ্রাম শেষ হবে।

(৫) প্রদত্ত স্কোর 65 থেকে 69 পর্যন্ত হলে   else if(n>=65) এর উপরের সবগুলো if(condition) কন্ডিশন মিথ্যা হবে কিন্তু else if(n>=65) সত্য হবে ফলে printf(“A-”); স্টেটমেন্ট কার্যকর হবে ফলে আউটপুটে A- গ্রেড প্রদর্শিত হবে। এবং else if(n>=65) এর নিচের অন্য কোনো else…if(condition) চেক করার প্রয়োজন হবে না ফলে প্রোগ্রাম শেষ হবে।  

(৬) প্রদত্ত স্কোর 60 থেকে 64 পর্যন্ত হলে   else if(n>=60) এর উপরের সবগুলো if(condition) কন্ডিশন মিথ্যা হবে কিন্তু else if(n>=60) সত্য হবে ফলে printf(“B+”); স্টেটমেন্ট কার্যকর হবে ফলে আউটপুটে B+ গ্রেড প্রদর্শিত হবে। এবং else if(n>=60) এর নিচের অন্য কোনো else…if(condition) চেক করার প্রয়োজন হবে না ফলে প্রোগ্রাম শেষ হবে।

(৭) প্রদত্ত স্কোর 50 থেকে 59 পর্যন্ত হলে   else if(n>=50) এর উপরের সবগুলো if(condition) কন্ডিশন মিথ্যা হবে কিন্তু else if(n>=50) সত্য হবে ফলে printf(“B”); স্টেটমেন্ট কার্যকর হবে ফলে আউটপুটে B গ্রেড প্রদর্শিত হবে। এবং else if(n>=50) এর নিচের অন্য কোনো else…if(condition) চেক করার প্রয়োজন হবে না ফলে প্রোগ্রাম শেষ হবে।

(৮) প্রদত্ত স্কোর 40 থেকে 49 পর্যন্ত হলে   else if(n>=40) এর উপরের সবগুলো if(condition) কন্ডিশন মিথ্যা হবে কিন্তু else if(n>=40) সত্য হবে ফলে printf(“C”); স্টেটমেন্ট কার্যকর হবে ফলে আউটপুটে C গ্রেড প্রদর্শিত হবে। এবং else if(n>=40) এর নিচের অন্য কোনো else…if(condition) চেক করার প্রয়োজন হবে না ফলে প্রোগ্রাম শেষ হবে।

(৯) প্রদত্ত স্কোর 33 থেকে 39 পর্যন্ত হলে   else if(n>=33) এর উপরের সবগুলো if(condition) কন্ডিশন মিথ্যা হবে কিন্তু else if(n>=33) সত্য হবে ফলে printf(“D”); স্টেটমেন্ট কার্যকর হবে ফলে আউটপুটে D গ্রেড প্রদর্শিত হবে। এবং else if(n>=33) এর নিচের অন্য কোনো else…if(condition) চেক করার প্রয়োজন হবে না ফলে প্রোগ্রাম শেষ হবে।

(১০) প্রদত্ত স্কোর 0 থেকে 32 পর্যন্ত হলে সবগুলো if(condition) কন্ডিশন মিথ্যা হবে ফলে else সংশ্লিষ্ট printf(“F”); স্টেটমেন্ট কার্যকর হবে ফলে আউটপুটে F গ্রেড প্রদর্শিত হবে এবং প্রোগ্রাম শেষ হবে।

Leave a Reply

Your email address will not be published. Required fields are marked *