কন্ট্রোল স্টেটমেন্ট :লেকচার- ৭
কন্ট্রোল স্টেটমেন্ট :
কন্ট্রোল স্টেটমেন্টগুলো হচ্ছে -1.if statement
2.if-else statement
3.while-statement
4.do-while statement
5.for statement ইত্যাদি
এগুলো জেনে আমরা সত্যিকারের প্রোগ্রামিং জগতে প্রবেশ করতে যাচ্ছি। যিনি যত সহজে কন্ট্রোল স্টেটমেন্টগুলো দিয়ে নিজের লজিকগুলো কোড পরিণত করতে পারবেন, তিনি প্রোগ্রামিং তত ভালো করতে পারবেন।
do-while statement
কিছু একটা কর, যতক্ষণ পর্যন্ত একটা কন্ডিশন সত্য হয়। এমন প্রোগ্রাম লিখতে আমরা do while ব্যবহার করি। do while লুপের সাধারণ ফরম হচ্ছেঃdo{
statement;
}while (expression);
expression বলতে একটা কন্ডিশন দেওয়া হয়। যতক্ষণ পর্যন্ত এই কন্ডিশনটি সত্য হবে, ততক্ষন পর্যন্ত এই do while লুপটি চলবে এবং এই statement এক্সিকিউট হতে থাকবে। একটি স্টেটমেন্ট এক্সিকিউট করার জন্য আমাদের দ্বিতীয় ব্র্যকেট ব্যবহার করতে হবে না। কিন্তু যদি আমরা একের অধিক স্টেটমেন্ট এক্সিকিউট করতে চাই, তাহলে আমাদের দ্বিতীয় ব্র্যাকেট ব্যবহার করতে হবে। তখন লিখতে হবে এমন করেঃ
do{
statement 1;
statement 2;
statement 3;
....
} while (expression);
do...while লুপ কিভাবে কাজ করে?
1.দ্বিতীয় বন্ধনীর ভেতরের কোড ব্লক প্রথমে একবার সম্পাদিত(executed) হয়।2.তারপরে testExpression নির্ণয় হয়। যদি testExpression সত্য হয় তাহলে লুপের বডি পূনরায় সম্পাদিত হয়। টেষ্ট এক্সপ্রেশন মিথ্যা না হওয়া পর্যন্ত এই প্রক্রিয়া চলতে থাকে।
3.যখন টেষ্ট এক্সপ্রেশন মিথ্যা হয়ে যায় বা ভ্যালু 0(শূন্য) হয় তখন do...while লুপের সমাপ্তি ঘটে।
ডু...হোয়াইল লুপের ফ্লোচার্ট
ছোট্ট একটা প্রোগ্রাম লিখিঃ
#include <stdio.h>
int main ()
{
int number = 0;
do {
printf("%d \n", number);
number++;
} while (number <=9);
return 0;
}
উপরের প্রোগ্রামে আমরা number নামে একটা ইন্টিজার ভ্যারিয়েবল নিয়েছি। যার প্রাথমিক মান হচ্ছে ০। এরপর আমরা do while লুপ লিখছি। do এর পর দ্বিতীয় ব্র্যাকেটের মধ্যে আমরা যে স্টেটমেন্ট গুলো এক্সিকিউট করতে হবে, সে গুলো লিখেছি। এরপর লিখছি while (number <=9) এটা হচ্ছে কন্ডিশন। যতক্ষন পর্যন্ত এ কন্ডিশনটা সত্য হবে, ততক্ষণ পর্যন্ত ব্র্যাকেটের ভেতরের {…} কোড গুলো এক্সিকিউট হবে। ব্র্যাকেটের ভেতরে আমরা প্রথমে নাম্বারটি প্রিন্ট করেছি। পরের লাইনে number++; দিয়ে নাম্বারটির মান এক করে বাড়িয়ে দিয়েছি। এরপর এক সময় number এর মান 10 হয়ে গেছে। তখন while (number <=9) এ এসে দেখল কন্ডিশনটি মিথ্যে হয়ে গেছে। মানে number এর মান ৯ এর থেকে বড়, তখন আর do ভেতরে আর ঢুকবে না এবং তার ভেতরের কোড গুলোও এক্সিকিউট করবে না।
উপরের প্রোগ্রামটি আমরা আরেকটু ছোট করে লিখতে পারে। একই ভাবে কাজ করবে। শুধু ব্র্যকেটটি সরিয়ে ফেলছি।
#include <stdio.h>
int main ()
{
int number = 0;
do
printf("%d \n", number++);
while (number <=9);
return 0;
}
আমরা যদি একটি মাত্র স্টেটম্যান্ট এক্সিকিউট করতে চাই, তাহলে আমাদের দ্বিতীয় ব্র্যকেট ব্যবহার না করলেও হবে।
do while ব্যবহার করে আমরা কিছু সংখ্যার গড় বের করব। প্রোগ্রামটি প্রথম ব্যবহারকারীকে জিজ্ঞেস করব, কয়টা সংখ্যার গড় ব্যবহার করতে চায়। এরপর এক এক করে সব গুলো সংখ্যা ইনপুট নিবে। তারপর গড় দেখাবে।
#include <stdio.h>
int main ()
{
int total_no, count = 1;
float number, average, sum =0;
printf("How many numbers? ");
scanf("%d", &total_no);
do{
printf("Enter number %d : ", count);
scanf("%f", &number);
sum +=number;
count++;
}while (count <=total_no);
average = sum / total_no;
printf("Average is : %f\n", average);
return 0;
}
আমরা অনেক গুলো ভ্যরিয়েবল ডিক্লেয়ার করেছি। total_no হচ্ছে কয়েটা নাম্বারের গড় বের করব, তার জন্য। এরপর আমরা do while লুপে প্রবেশ করেছি। লুপ ততক্ষণই চলবে যতক্ষণ না পর্যন্ত আমাদের সব গুলো নাম্বার ইনপুট নেওয়া হয়। তার জন্য আমরা একটা count ভ্যারিয়েবল নিয়েছি। যার প্রথম মান হচ্ছে ১। এর পর প্রতিবার আমরা একটা সংখ্যা ইনপুট নিব, একবার করে এই count এর মান বাড়িয়ে দিব।
number নামক ভ্যারিয়েবল দিয়ে আমরা এরপর প্রতিটা সংখ্যা ইনপুট নিচ্ছি। ইনপুট নিয়ে সেগুলো সব যোগ করছি। ছোট্ট একটা লাইন দিয়ে। sum +=number; যার মানে হচ্ছে sum = sum + number;
যখন দেখেছি count এর মান total_no এর থেকে বড় হয়ে গেছে, তার মানে হচ্ছে আমাদের সকল সংখ্যা ইনপুট নেওয়া হয়ে গেছে। তাই আমরা do while থেকে বের হয়ে গিয়েছি।
উদাহরণ : ডু...হোয়াইল লুপ
/ ইউজার 0(শূন্য) প্রবেশ না করানো পর্যন্ত যোগফল নির্ণয়ের প্রোগ্রাম
#include <stdio.h>
int main()
{
double number, sum = 0;
//লুপের বডি কমপক্ষে একবার এক্সিকিউট হয়।
do
{
printf("Enter a number: ");
scanf("%lf", &number);
sum += number;
}
while(number != 0.0);
printf("Sum = %.2lf",sum);
return 0;
}
আউটপুট
Enter a number: 3
Enter a number: 5.5
Enter a number: -5
Enter a number: 10
Enter a number: -3.5
Enter a number: 0
Sum = 10

No comments