সি প্রোগ্রামিংঃ do – while

কিছু একটা কর, যতক্ষণ পর্যন্ত একটা কন্ডিশন সত্য হয়। এমন প্রোগ্রাম লিখতে আমরা do while ব্যবহার করি।
do while লুপের সাধারণ ফরম হচ্ছেঃ

do statement while (expression); 

expression বলতে একটা কন্ডিশন দেওয়া হয়। যতক্ষণ  পর্যন্ত এই কন্ডিশনটি সত্য হবে, ততক্ষন পর্যন্ত এই do while লুপটি চলবে এবং এই statement এক্সিকিউট হতে থাকবে। একটি স্টেটমেন্ট এক্সিকিউট করার জন্য আমাদের দ্বিতীয় ব্র্যকেট ব্যবহার করতে হবে না। কিন্তু যদি আমরা একের অধিক স্টেটমেন্ট এক্সিকিউট করতে চাই, তাহলে আমাদের দ্বিতীয় ব্র্যাকেট ব্যবহার করতে হবে। তখন লিখতে হবে এমন করেঃ

do{
 statement 1;
 statement 2;
 statement 3;
....
 
} while (expression);

ছোট্ট একটা প্রোগ্রাম লিখিঃ

#include <stdio.h>

int main ()

{

int number = 0;

do {

printf("%d \n", number);

number++;

} while (number <=9);

return 0;

}

copy C Code & Paste it below the Compiler & Run

উপরের প্রোগ্রামে আমরা 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;

}

copy C Code & Paste it below the Compiler & Run

আমরা যদি একটি মাত্র স্টেটম্যান্ট এক্সিকিউট করতে চাই, তাহলে আমাদের দ্বিতীয় ব্র্যকেট ব্যবহার না করলেও হবে।

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;
}

copy C Code & Paste it below the Compiler & Run

আমরা অনেক গুলো ভ্যরিয়েবল ডিক্লেয়ার করেছি। total_no হচ্ছে কয়েটা নাম্বারের গড় বের করব, তার জন্য। এরপর আমরা do while লুপে প্রবেশ করেছি। লুপ ততক্ষণই চলবে যতক্ষণ না পর্যন্ত আমাদের সব গুলো নাম্বার ইনপুট নেওয়া হয়। তার জন্য আমরা একটা count ভ্যারিয়েবল নিয়েছি। যার প্রথম মান হচ্ছে ১। এর পর প্রতিবার আমরা একটা সংখ্যা ইনপুট নিব, একবার করে এই count এর মান বাড়িয়ে দিব।

number নামক ভ্যারিয়েবল দিয়ে আমরা এরপর প্রতিটা সংখ্যা ইনপুট নিচ্ছি। ইনপুট নিয়ে সেগুলো সব যোগ করছি। ছোট্ট একটা লাইন দিয়ে। sum +=number; যার মানে হচ্ছে sum = sum + number;

যখন দেখেছি count এর মান total_no এর থেকে বড় হয়ে গেছে, তার মানে হচ্ছে আমাদের সকল সংখ্যা ইনপুট নেওয়া হয়ে গেছে। তাই আমরা do while থেকে বের হয়ে গিয়েছি। এরপর গড় বের করেছি। তারপর প্রিন্ট।