Control Flow Part1
আমার আজকের টপিকের নাম হচ্ছে ইফ স্টেডমেন্ট।
সি প্রোগ্রামিং এ তিন ধরণের if কন্ডিশনাল স্টেটমেন্ট রয়েছে।
- ইফ (if)
- ইফ ..... এলস (if....else)
- ইফ ..... এলসইফ .... এলস (if...elseif....else)
ইফ (if) স্টেটমেন্ট
ইফ (if) স্টেটমেন্ট সিনট্যাক্স ঃ
if (conditionTest)
{
//code
}ইফ(if), প্রথমে তার প্রথম বন্ধনী (conditionTest) এর ভ্যালু চেক করবে,
- যদি conditionTest এর ভ্যালু সত্যি (true) হয় তাহলে ইফ ব্লকের মধ্যে সব কোড এক্সিকিউট কবে।
- যদি conditionTest এর ভ্যালু মিথ্যা (false) হয় তাহলে ইফ ব্লকের মধ্যে ডুকবেই না।
#include<stdio.h>
int main(){
int input;
printf("\nEnter a value: ");
scanf("%d",&input);
if(input>10){
printf("%d is greater than 10",input);
}
return 0;
}
উপরের কোডে যদি আমরা ইনপুট ১০ এর থেকে বড় দেওয়া তাহলে আমাদের ইফ ব্লক এর ভিতরে ডুকবে এবং প্রিন্ট করবে ইনপুট(ভ্যালু যা তাই) is greater than 10 । আর যদি আমি ইনপুট ১০ এবং ১০ এর থেকে ছোট দেওয়া হয় তাহলে আউটপুটে কিছুই প্রিন্ট করবে না । আশা করি বুঝতে পেরেছেন। কোডটা নিজেরা রান করে দেখার অনুরোধ রইল।
ইফ ..... এলস (if....else)
যদি কন্ডিশন সত্যি (true) হয় তাহলে কিছু কোড কাজ করবে আর যদি মিথ্যা (false) হয় তাহলে কিছু কোড কাজ করবে।
ইফ...এলস (if..else) সিনট্যাক্স :
if (conditionTest)
{
//code
}
else{
//code
}
যদি ইফ ব্লক true হয় তাহলে ইফ বক্ল এক্সিকিউট হবে আর যদি false হয় তাহলে ইফ ব্লক এড়িয়ে যাবে এবং else ব্লক এক্সিকিউট হবে।
উদাহরণঃ ইউজার একটি ভ্যালু ইনপুট দিবে আর আমাদের বলতে হবে ভ্যালুটি জোড় অথবা বিজোড়।
#include<stdio.h>
int main()
{
int value;
printf("\nEnter a value: ");
scanf("%d",&value);
if(value%2==0){
printf("%d is even number",value);
}
else{
printf("%d is odd number",value);
}
return 0;
}
কোড এক্সপ্লেনেশনঃ এইখান থেকে আমরা দেখতে পাই যে একটি ভ্যালু ইনপুট নেওয়া হয়েছে তারপর ইফ এর মধ্যে চেক করা হয়েছে যে, value%2==0 এটার মানে হচ্ছে ভ্যালুটাকে কি ২ দিয়ে ভাগ করা যায় কিনা ! যদি আমাদের ভ্যালু ২ দিয়ে ভাগ করা যায় তাহলে আমাদের ইফ এর মধ্যে ডুকবে এবং প্রিন্ট করবে,
ধরি,
value = 10;
অউটপুট হবে 10 is even number ।
আর যদি আমাদের ইনপুট দেওয়া ভ্যালুকে ২ দিয়ে ভাগ না যায় তাহলে আমাদের এলস এর মধ্যে চলে যাবে এবং প্রিন্ট করবে ,
ধরি,
value = 15;
অউতপুট হবে 15 is odd number ।
ইফ ..... এলসইফ .... এলস (if...elseif....else)
নেস্টেট if...else স্টেটমেন্ট
কন্ডিশন True/False যাই হোক না কেন আমরা কোড এক্সিকিউট করতে চাই অর্থাৎ সিদ্ধান্ত গ্রহণ করতে চাই সেক্ষেত্রে if...else স্টেটমেন্ট ব্যবহৃত হয়। কিন্তু মাঝে মাঝে সিদ্ধান্ত গ্রহণ দুই এর অধিক কন্ডিশনের উপর নির্ভর করতে পারে।
দুই এর অধিক এক্সপ্রেশনকে টেস্ট করে কোড এক্সিকিউট করার জন্য নেস্টেড if...else স্টেটমেন্ট ব্যবহৃত হয়।
কোড সিনট্যাক্স ঃ
if (conditionTest1)
{
//conditionTest1 True হলে এই কোড এক্সিকিউট হবে।
}
else if(conditionTest2)
{
// conditionTest1 false এবং conditionTest2 True হলে এই কোড ব্লক এক্সিকিউট হবে।
}
else if (conditionTest3)
{
//conditionTest1 ও conditionTest2 false এবং conditionTest3 True হলে এই কোড ব্লক এক্সিকিউট হবে।
}
.
.
else
{
// সকল conditionTest false হলে এই কোড ব্লক এক্সিকিউট হবে।
}কোন কন্সেপ্ট ভালো ভাবে বোঝার জন্য উদাহরণ খুবই জরুরী। তাই আমারা এখন একটা উদাহরণ দিয়ে দেখবো। চলুন দেখা যাকঃ
উদাহরণ ঃ
// একটি ভ্যালু দেওয়া আছে আমাদের বের করেতে হবে ভ্যালুটি নেগেটিভ, পজিটিভ অথবা জিরো?
#include<stdio.h>
int main()
{
int value;
printf("\nEnter a value: ");
scanf("%d",&value);
if(value>0){
printf("Positive\n");
}
else if(value<0){
printf("Negative\n");
}
else{
printf("zero\n");
}
return 0;
}
উদাহরণটিতে প্রথমে চেক করা হয়ছে ভ্যালুটি 0 এর থেকে বড় কিনা যদি বড় হয় তাহলে আমারা তো জানি সেটা পজিটিভ ভ্যালু তাই প্রিন্ট করবে Positive আর দ্বিতীয় এলস ইফ এ চেক করা হয়েছে 0 কি ভ্যালুর থেকে বড় যদি বড় হয় তাহলে তো আমারা জানি নেগেটিভ তাই প্রিন্ট করবে Negative আর যদি উপরের দুইটাই না মিলে তাহলে এলস এর ভিতরে ডুকবে এবং প্রিন্ট করবে Zero ।
এই ইফ এলস রিলেটেড কিছু প্রব্লেম নিচে দেওয়া হলঃ
প্রব্লেম-১ঃ আমাদের একটা এক বড় ভাই (দুর্জয় ভাই) তার বিয়ের বয়স প্রায় শেষের পথে , তার বিয়ের কথা নিয়ে অনেক জোর করার পরও তিনি রাজই হচ্ছে না, কিন্তু ইতিমধ্যে তিনি জানিয়েছে তার বেতন ৬ ডিজিট এর সমান বা তার উপরে হলে বিয়ে করবে। এখন তার বিয়ে করার জন্য আপনারা একটা কোড লিখেন শুধু দেখান যে তার বেতন কি ৬ ডিজিট এর উপরে গেছে কি না?
প্রব্লেম-২ঃ দুইটি সংখ্যার মধ্যে ম্যাক্সিমাম সংখ্যার বের কর? (সি প্রোগ্রামিং এর মাধ্যমে)
প্রব্লেম-৩ঃ তিনটি সংখ্যার মধ্যে ম্যাক্সিমাম সংখ্যার বের কর? (সি প্রোগ্রামিং এর মাধ্যমে)
প্রব্লেম-৪ঃ একটি সাল ইনপুট নিবেন এবং বের করবে সালটি Leap year কি না ?(সি প্রোগ্রামিং এর মাধ্যমে)
প্রব্লেম-৫ঃ একটা alphabet ইনপুট নিবেন এবং বের করবেন alphabet টি vowel or consonant? (সি প্রোগ্রামিং এর মাধ্যমে)
#nextTopper
No comments