শুক্রবার, ৯ মে, ২০১৪

লুপ-২


আমরা জানি যে প্রোগ্রামে কোন এক বা একাধিক স্টেটমেন্ট কে বারবার কাজ করাতে লুপ ব্যাবহার করা হয়। তো আমরা for লুপ তো শিখেছিই, অন্য লুপ গুলো কেন শিখব?

আমরা for লুপ এ দেখেছি যে আমরা এই লুপের সাহায্যে স্টেটমেন্টকে n বার কাজ করাতে পারি, মানে আমরা কোন স্টেটমেন্টকে যে কয়বার কাজ করাতে চাই তা একটা ভেরিয়েবল এ ষ্টোর করে রাখব। এক্ষেত্রে আমরা জানি যে লুপ টা কয়বার চলবে, কিন্তু প্রোগ্রামে এমনও তো হতে পারে যে আমরা জানি না যে লুপ টা কয়বার চলবে। তাহলে উপায়???

এক্ষেত্রে আমরা while লুপ ইউস করবো। 

While লুপঃ

একটা while লুপের চেহারা মোটামুটি এরকম-
while(Condition)
   Statement;
while লুপের ওপরের চেহারা দেখে খুব বেশী কিছু বোঝা যায় না।
আমরা যদি লিখি-

while(1)
 {
      scanf("%d",&i);
        if(i==0)
            break;
      printf("%d\n",i);
  }

এখানে while(1) একটা infinity লুপ। লুপের মধ্যে আমরা একটা করে int ইনপুট নিচ্ছি আর চেক করছি এটা 0 কিনা। যদি 0 হয় তাহলে লুপ ব্রেক করে দিচ্ছি আর না হলে সেটা প্রিন্ট করছি। এখানে একটা বিষয় দেখ, আমরা কিন্তু জানি না যে user কখন 0 ইনপুট দেবে। যতক্ষণ পর্যন্ত না 0 ইনপুট দেবে ততক্ষন পর্যন্ত লুপ চলবে। while(condition) অংশে আমরা এক বা একাধিক condition(, ইউস করে)দিতে পারি। 

while(Condition1,Condition2,Condition3)
   Statement;

একটা condition দিলে লুপ কখন ব্রেক করবে তা নির্ভর করবে ওই condition এর ওপর। আর একাধিক Conditionদিলে তা নির্ভর করবে শেষের Conditionটার ওপর।
for লুপের কাজ আমরা while লুপ দিয়ে করতে পারি –

    i=1;                   //initialization
    while(i<=n)        //condition
    {
        printf("%d\n",i);
        i++;            //increment
    }

কিন্তু while লুপের কাজ আমরা সবসময় for লুপ দিয়ে করতে পারব না।

do-while লুপঃ
do-while লুপ আসলে while লুপেরই আরেক রূপ। একটা
do-while লুপের চেহারা দেখতে এরকম-

do
 {
   Statement;
 }
 while(condition);

while লুপ, for লুপ কি করে, আগে condition চেক করে তারপর condition ট্রু হলে statement অংশ execute করে। কিন্তু প্রোগ্রামে এমনও তো হতে পারে যে, statement অংশ কমপক্ষে একবার হলেও execute হবে এবং তারপর আবার execute হবে কিনা তা condition এর ওপর নির্ভর করে তবে সেক্ষেত্রে আমরা do-while লুপ ইউস করতে পারি।
do-while লুপ এ প্রথমে do এর under এ যে statement আছে তা execute হবে এবং এর পর condition চেক করবে, condition ট্রু হলে আবার statement execute হবে এবং এভাবে চলতে থাকবে যতক্ষণ পর্যন্ত না condition অংশটা ফলস হয়।
আজ তাহলে উঠি। 
হ্যাপি কোডিং !!! :)




কোন মন্তব্য নেই: