PHP While লুপ (While Loop) Tutorials

While Loop a  প্রথমেই একটা শর্ত/এক্সপ্রেশন থাকে, যতক্ষন শর্তটি পুরন না হয় ততক্ষন while loop টি একটা code block কে execute করতে থাকে। যখন শর্ত মিলে যায় তখন loop থেমে যায়

সংকেত

while (condition){code to be executed;} 

যদি condition false হয় তখন সেকেন্ড ব্রাকেটের ভিতর (কোডব্লকটি) code টি এড়িয়ে যায় (ব্রাকেট না বলে curly braces বলা উচিৎ) যখন শেষের ব্রাকেটটি আসবে তখন condition আবার check করবে, true হলে code আবার execute করবে। condition যতবার দেয়া আছে ততবার এভাবে চলবেই। যেমন:

<?php

$i=1;    while($i<6){

echo 'A counter start from '. $i . '<br/>';

$i++;}?>

output

A counter start from 1
A counter start from 2
A counter start from 3
A counter start from 4
A counter start from 5

 

ব্যাখ্যা: প্রথমে $i এর মান দিয়ে শুরু হয়েছে। এরপর while লুপের ভিতর শর্তটি ($i<6) চেক করবে $i এর মান কত?

১ম বার $i এর মান তার মানে এখানে এর চেয়ে ছোট তাই এখন কোডব্লকে ঢুকবে এবং সেখানকার echo স্টেটমেন্ট বা যে কোডই থাকুন একবার execute করবে। এবং $i++ এর কারনে $i এর মান বাড়াবে।

২য় বার, তাহলে এবার $i এর মান পাবে এবং এটাও এর চেয়ে ছোট ফলে শর্তটি ($i<6) true রিটার্ন করবে এবং loop টি আবার একবার কোডব্লকটি এক্সিকিউট করবে। যেহেতু লুপের ভিতর $i++ আছে তাই আবার $i এর বাড়াবে সুতরাং $i এর মান এই লুপ শেষে হল ৩। কেননা প্রথমবার বাড়িয়ে হয়েছিল।

এভাবে বার loop টি পূনরাবৃত্তি হবে। যখনি $i এর মান বাড়তে বাড়তে হয়ে যাবে তখন শর্তটি ($i<6) আর মিলবেনা কেননা তো এর ছোট নয় বরং সমান সুতরাং শর্তটি false return করবে।

 

এবার প্রথমে $i = 6 দিলে কি আউটপুট আসবে? কিছুই আসবেনা কারন তখন ($i<6) এই শর্তের এর সাথে মিলবেনা তাই কোড execute হবেনা। অর্থাৎ এখন $i (বা )  এর চেয়ে ছোট নয়। প্রাকটিস করে দেখুন।

do…while loop

এটা while loop এর মতই শুধু পার্থক্য এটুকু যে শর্তটি টি শেষে যাচাই হয়, শুরুতে করার পরিবর্তে। অর্থাৎ কমপক্ষে একবার loop টি ঘুরবেই।

সংকেত

do{

code to be executed

}while(condition);

 

যেমন নিচের উদাহরনটির কোডটিও উপরের মত হুবহু একই output দেবে শুধু কাজ করবে ভিন্নভাবে।

<?php

$i=1;

do{

echo 'A counter start from '. $i . '<br/>';

$i++;

}

while ($i<6);

?>

 

কিন্তু এখানে যদি $i=6 দেই তাহলে কি হবে? যেমন

<?php

$i=6;

do{

echo 'A counter start from '. $i . '<br/>';

$i++;

}

while ($i<6);?>

নিচের মত output আসবে কারন প্রথমবার শর্ত যাচাই ছাড়াই loop টি ঘুরবে।

A counter start from 6

 

দেখুন loop টি প্রথমবার checking ছাড়াই একবার ঘুরেছে। প্রথমবার ঘোরার পর check করেছে যে loop টি repeat হবে কিনা? কিন্তু while লুপে এটা প্রথমবারই এই check হয়।